ObjectDataSourceEventArgs Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет данные для событий ObjectCreating и ObjectCreated элемента управления ObjectDataSource.
public ref class ObjectDataSourceEventArgs : EventArgs
public class ObjectDataSourceEventArgs : EventArgs
type ObjectDataSourceEventArgs = class
inherit EventArgs
Public Class ObjectDataSourceEventArgs
Inherits EventArgs
- Наследование
Примеры
Этот раздел содержит два примера кода. В первом примере кода показано, как использовать ObjectDataSource элемент управления с бизнес-объектом и элементом GridView управления для получения и отображения информации. Во втором примере кода представлен пример базового бизнес-объекта, который используется в первом примере кода.
В следующем примере кода показано, как использовать ObjectDataSource элемент управления с бизнес-объектом и элементом GridView управления для получения и отображения информации. В этом примере, как и во многих реальных сценариях, использование экземпляра бизнес-объекта по умолчанию с элементом ObjectDataSource управления может оказаться невозможным. В этом примере не удается успешно вызвать конструктор без параметров, ObjectDataSource так как он вызовет исключение. В некоторых случаях конструктор без параметров может быть защищен, а в других — не инициализировать бизнес-объект в требуемом состоянии. Независимо от причины, можно создать экземпляр бизнес-объекта самостоятельно и задать для экземпляра ObjectInstance свойство объекта, передаваемого ObjectDataSourceEventArgs обработчику. Это экземпляр бизнес-объекта, который ObjectDataSource будет использовать для выполнения своей работы.
<%@ 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>
В следующем примере кода показан базовый бизнес-объект, который используется в предыдущем примере кода.
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
Комментарии
Класс ObjectDataSourceEventArgs используется в методах OnObjectCreating и OnObjectCreated для предоставления доступа к экземпляру бизнес-объекта перед выполнением любых операций с данными, использующих ObjectDataSource элемент управления и бизнес-объект. Бизнес-объект устанавливается и обращается к ней ObjectInstance с помощью свойства . Добавив делегат обработчика событий для обработки ObjectCreating события, можно создать экземпляр бизнес-объекта в пользовательском коде ObjectDataSource вместо выполнения экземпляра. Это полезно, если требуется экземпляр бизнес-объекта, отличный от используемого по умолчанию, или вызвать конструктор без параметров для создания экземпляра; объект ObjectDataSource всегда вызывает конструктор без параметров для создания экземпляра бизнес-объекта, с которым он работает. Вы также можете добавить делегат обработчика событий для обработки ObjectCreated события, что позволяет получить доступ ко всем общедоступным членам бизнес-объекта для выполнения любой дополнительной инициализации или работы.
Методы OnObjectCreating и OnObjectCreated не вызываются элементом ObjectDataSource управления , если метод бизнес-объекта, выполняющий операции с данными, имеет значение static
.
Элемент ObjectDataSource управления предоставляет множество событий, которые можно обрабатывать для работы с базовым бизнес-объектом в разное время его жизненного цикла. В следующей таблице перечислены события и связанные EventArgs классы и делегаты обработчика событий.
Конструкторы
ObjectDataSourceEventArgs(Object) |
Инициализирует новый экземпляр класса ObjectDataSourceEventArgs, используя заданный объект. |
Свойства
ObjectInstance |
Получает или задает объект, представляющий бизнес-объект, совместно с которым элемент управления ObjectDataSource выполняет операции с данными. |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |