ObjectDataSourceEventArgs Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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ń.
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) |