Поделиться через


ObjectDataSourceEventArgs Класс

Определение

Предоставляет данные для событий ObjectCreating и ObjectCreated элемента управления ObjectDataSource.

public ref class ObjectDataSourceEventArgs : EventArgs
public class ObjectDataSourceEventArgs : EventArgs
type ObjectDataSourceEventArgs = class
    inherit EventArgs
Public Class ObjectDataSourceEventArgs
Inherits EventArgs
Наследование
ObjectDataSourceEventArgs

Примеры

Этот раздел содержит два примера кода. В первом примере кода показано, как использовать 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 классы и делегаты обработчика событий.

Событие EventArgs EventHandler
ObjectCreating.

Происходит непосредственно перед созданием экземпляра бизнес-объекта.
ObjectDataSourceEventArgs ObjectDataSourceObjectEventHandler
ObjectCreated.

Происходит сразу после создания экземпляра бизнес-объекта.
ObjectDataSourceEventArgs ObjectDataSourceObjectEventHandler
Selecting.

Происходит перед извлечением данных.
ObjectDataSourceSelectingEventArgs ObjectDataSourceSelectingEventHandler
Inserting, Updatingи Deleting.

Происходит перед выполнением операции вставки, обновления или удаления.
ObjectDataSourceMethodEventArgs ObjectDataSourceMethodEventHandler
Selected.

Происходит после извлечения данных.
ObjectDataSourceStatusEventArgs ObjectDataSourceStatusEventHandler
Inserted, Updated, Deleted.

Происходит после завершения операции вставки, обновления или удаления.
ObjectDataSourceStatusEventArgs ObjectDataSourceStatusEventHandler
ObjectDisposing.

Происходит перед уничтожением бизнес-объекта.
ObjectDataSourceDisposingEventArgs ObjectDataSourceDisposingEventHandler

Конструкторы

ObjectDataSourceEventArgs(Object)

Инициализирует новый экземпляр класса ObjectDataSourceEventArgs, используя заданный объект.

Свойства

ObjectInstance

Получает или задает объект, представляющий бизнес-объект, совместно с которым элемент управления ObjectDataSource выполняет операции с данными.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел