ObjectDataSourceEventArgs Klasa

Definicja

Dostarcza dane dla zdarzeń ObjectCreating i ObjectCreated kontrolki ObjectDataSource .

public ref class ObjectDataSourceEventArgs : EventArgs
public class ObjectDataSourceEventArgs : EventArgs
type ObjectDataSourceEventArgs = class
    inherit EventArgs
Public Class ObjectDataSourceEventArgs
Inherits EventArgs
Dziedziczenie
ObjectDataSourceEventArgs

Przykłady

Ten rozdział zawiera dwa przykłady kodu. W pierwszym przykładzie kodu pokazano, jak używać kontrolki ObjectDataSource z obiektem biznesowym i kontrolką GridView do pobierania i wyświetlania informacji. Drugi przykład kodu zawiera przykładowy podstawowy obiekt biznesowy, którego używa pierwszy przykład kodu.

W poniższym przykładzie kodu pokazano, jak używać ObjectDataSource kontrolki z obiektem biznesowym i kontrolką GridView do pobierania i wyświetlania informacji. W tym przykładzie, podobnie jak w wielu rzeczywistych scenariuszach, użycie domyślnego wystąpienia obiektu biznesowego z kontrolką ObjectDataSource może nie być możliwe. W tym przykładzie nie ObjectDataSource można pomyślnie wywołać konstruktora bez parametrów, ponieważ zgłosi wyjątek. W niektórych przypadkach konstruktor bez parametrów może być chroniony, a w innych może nie zainicjować obiektu biznesowego do żądanego stanu. Niezależnie od przyczyny możesz samodzielnie utworzyć wystąpienie obiektu biznesowego i ustawić wystąpienie na ObjectInstance właściwość ObjectDataSourceEventArgs obiektu przekazanego do procedury obsługi. Jest to wystąpienie obiektu biznesowego, którego ObjectDataSource będzie używać do wykonywania swojej pracy.

<%@ Import namespace="Samples.AspNet.CS" %>
<%@ Page language="c#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
private void NorthwindLogicCreating(object sender, ObjectDataSourceEventArgs e)
{
    // Create an instance of the business object using a non-default constructor.
    EmployeeLogic eLogic = new EmployeeLogic("Not created by the default constructor!");
    
    // Set the ObjectInstance property so that the ObjectDataSource uses the created instance.
    e.ObjectInstance = eLogic;
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ObjectDataSource - C# Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:gridview
          id="GridView1"
          runat="server"
          datasourceid="ObjectDataSource1">
        </asp:gridview>

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployees"
          onobjectcreating="NorthwindLogicCreating"
          typename="Samples.AspNet.CS.EmployeeLogic" >
        </asp:objectdatasource>

    </form>
  </body>
</html>
<%@ Import namespace="Samples.AspNet.VB" %>
<%@ Page language="vb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Private Sub NorthwindLogicCreating(sender As Object, e As ObjectDataSourceEventArgs)

    ' Create an instance of the business object using a non-default constructor.
    Dim eLogic As EmployeeLogic = New EmployeeLogic("Not created by the default constructor!")
    
    ' Set the ObjectInstance property so that the ObjectDataSource uses the created instance.
    e.ObjectInstance = eLogic
    
End Sub ' NorthwindLogicCreating

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ObjectDataSource - VB Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:gridview
          id="GridView1"
          runat="server"
          datasourceid="ObjectDataSource1">
        </asp:gridview>

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployees"
          onobjectcreating="NorthwindLogicCreating"
          typename="Samples.AspNet.VB.EmployeeLogic" >
        </asp:objectdatasource>

    </form>
  </body>
</html>

W poniższym przykładzie kodu pokazano przykładowy podstawowy obiekt biznesowy, którego używa powyższy przykład kodu.

namespace Samples.AspNet.CS {

using System;
using System.Collections;
using System.Web.UI;
using System.Web.UI.WebControls;

  public class EmployeeLogic {

    public EmployeeLogic() {  
        throw new NotSupportedException("Initialize data.");
    }
    
    public EmployeeLogic(string data) {
        _data = data;
    }

    private string _data;
    
    // Returns a collection of NorthwindEmployee objects.
    public ICollection GetAllEmployees () {
      ArrayList al = new ArrayList();      
      al.Add(_data);        
      return al;
    }
  }
}
Imports System.Collections
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace Samples.AspNet.VB
  Public Class EmployeeLogic
    
    
    Public Sub New() 
        Throw New NotSupportedException("Initialize data.")
    
    End Sub
    
    
    Public Sub New(ByVal data As String) 
        _data = data
    
    End Sub
    
    Private _data As String
    
    
    ' Returns a collection of NorthwindEmployee objects.
    Public Function GetAllEmployees() As ICollection 
        Dim al As New ArrayList()
        al.Add(_data)
        Return al
    
    End Function 'GetAllEmployees
  End Class
End Namespace ' Samples.AspNet.VB

Uwagi

Klasa ObjectDataSourceEventArgs jest używana w OnObjectCreating metodach i OnObjectCreated w celu zapewnienia dostępu do wystąpienia obiektu biznesowego przed wykonaniem operacji na danych używających kontrolki i obiektu biznesowego ObjectDataSource . Obiekt biznesowy jest ustawiany i uzyskiwany dostęp za pomocą ObjectInstance właściwości . Dodając delegata procedury obsługi zdarzeń do obsługi ObjectCreating zdarzenia, można utworzyć wystąpienie obiektu biznesowego w kodzie niestandardowym zamiast ObjectDataSource wykonywać wystąpienie. Jest to przydatne, gdy chcesz, aby wystąpienie obiektu biznesowego nie było domyślne lub wywołać konstruktor bez parametrów w celu utworzenia wystąpienia; zawsze ObjectDataSource wywołuje konstruktora bez parametrów, aby utworzyć wystąpienie obiektu biznesowego, z nim współdziała. Możesz również dodać delegata procedury obsługi zdarzeń do obsługi ObjectCreated zdarzenia, co umożliwia dostęp do wszystkich publicznie uwidocznionych członków obiektu biznesowego w celu wykonania dodatkowej inicjalizacji lub pracy.

Metody OnObjectCreating i OnObjectCreated nie są wywoływane przez kontrolkę ObjectDataSource , jeśli metoda obiektu biznesowego wykonująca operacje na danych to static.

Kontrolka ObjectDataSource uwidacznia wiele zdarzeń, które można obsłużyć do pracy z bazowym obiektem biznesowym w różnych momentach jego cyklu życia. W poniższej tabeli wymieniono zdarzenia oraz skojarzone EventArgs klasy i delegaty procedury obsługi zdarzeń.

Zdarzenie Eventargs Eventhandler
ObjectCreating.

Występuje bezpośrednio przed utworzeniem wystąpienia obiektu biznesowego.
ObjectDataSourceEventArgs ObjectDataSourceObjectEventHandler
ObjectCreated.

Występuje natychmiast po utworzeniu wystąpienia obiektu biznesowego.
ObjectDataSourceEventArgs ObjectDataSourceObjectEventHandler
Selecting.

Występuje przed pobraniem danych.
ObjectDataSourceSelectingEventArgs ObjectDataSourceSelectingEventHandler
Inserting, Updatingi Deleting.

Występuje przed wykonaniem operacji wstawiania, aktualizowania lub usuwania.
ObjectDataSourceMethodEventArgs ObjectDataSourceMethodEventHandler
Selected.

Występuje po pobraniu danych.
ObjectDataSourceStatusEventArgs ObjectDataSourceStatusEventHandler
Inserted, Updated, Deleted.

Występuje po zakończeniu operacji wstawiania, aktualizowania lub usuwania.
ObjectDataSourceStatusEventArgs ObjectDataSourceStatusEventHandler
ObjectDisposing.

Występuje przed zniszczeniem obiektu biznesowego.
ObjectDataSourceDisposingEventArgs ObjectDataSourceDisposingEventHandler

Konstruktory

ObjectDataSourceEventArgs(Object)

Inicjuje ObjectDataSourceEventArgs nowe wystąpienie klasy przy użyciu określonego obiektu.

Właściwości

ObjectInstance

Pobiera lub ustawia obiekt reprezentujący obiekt biznesowy, za pomocą którego kontrolka ObjectDataSource wykonuje operacje na danych.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy

Zobacz też