Бөлісу құралы:


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 так как он вызовет исключение. В некоторых случаях конструктор без параметров может быть защищен, а в других — не инициализировать бизнес-объект в требуемое состояние. Независимо от причины можно создать экземпляр бизнес-объекта самостоятельно и задать экземпляр свойству ObjectInstanceObjectDataSourceEventArgs объекта, переданного обработчику. Это экземпляр бизнес-объекта, который 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 классы и делегаты обработчика событий.

Event EventArgs EventHandler
ObjectCreating.

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

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

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

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

Происходит после получения данных.
ObjectDataSourceStatusEventArgs ObjectDataSourceStatusEventHandler
Inserted, , UpdatedDeleted.

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

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

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

Имя Описание
ObjectDataSourceEventArgs(Object)

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

Свойства

Имя Описание
ObjectInstance

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

Методы

Имя Описание
Equals(Object)

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

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

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

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

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

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

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

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

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

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

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

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