(0) exportieren Drucken
Alle erweitern

ObjectDataSourceEventArgs-Klasse

Stellt Daten für das ObjectCreating-Ereignis und das ObjectCreated-Ereignis des ObjectDataSource-Steuerelements bereit.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

public class ObjectDataSourceEventArgs : EventArgs
public class ObjectDataSourceEventArgs extends EventArgs
public class ObjectDataSourceEventArgs extends EventArgs
Nicht zutreffend.

Die ObjectDataSourceEventArgs-Klasse wird in der OnObjectCreating-Methode und der OnObjectCreated-Methode verwendet, um Zugriff auf die Geschäftsobjektinstanz zu ermöglichen, bevor Datenoperationen ausgeführt werden, die das ObjectDataSource-Steuerelement und das Geschäftsobjekt verwenden. Das Geschäftsobjekt wird mithilfe der ObjectInstance-Eigenschaft festgelegt, und auch der Zugriff darauf erfolgt über diese Eigenschaft. Sie können durch Hinzufügen eines Ereignishandlerdelegaten für die Behandlung des ObjectCreating-Ereignisses eine Instanz des Geschäftsobjekts in benutzerdefiniertem Code erstellen. Andernfalls führt die ObjectDataSource die Instanziierung durch. Dies empfiehlt sich, wenn Sie eine andere als die Standardinstanz des Geschäftsobjekts benötigen oder einen anderen als den Standardkonstruktor zum Erstellen der Instanz aufrufen möchten. Die ObjectDataSource ruft immer den Standardkonstruktor auf, um eine Instanz des verwendeten Geschäftsobjekts zu erstellen. Sie können auch einen Ereignishandlerdelegaten für die Behandlung des ObjectCreated-Ereignisses hinzufügen. Dies ermöglicht Ihnen den Zugriff auf alle öffentlich verfügbar gemachten Member des Geschäftsobjekts, um weitere Initialisierungen oder Aufgaben auszuführen.

Die OnObjectCreating-Methode und die OnObjectCreated-Methode werden nicht vom ObjectDataSource-Steuerelement aufgerufen, wenn die Geschäftsobjektmethode, die die Datenoperationen ausführt, static ist.

Das ObjectDataSource-Steuerelement macht viele Ereignisse verfügbar, die Sie so behandeln können, dass sie mit den zugrunde liegenden Geschäftsobjekten mehrmals im Lebenszyklus verwendet werden können. In der folgenden Tabelle sind die Ereignisse sowie die zugeordneten EventArgs-Klassen und Ereignishandlerdelegaten aufgelistet.

Ereignis

EventArgs

EventHandler

ObjectCreating.

Tritt unmittelbar vor dem Erstellen der Instanz des Geschäftsobjekts ein.

ObjectDataSourceEventArgs

ObjectDataSourceObjectEventHandler

ObjectCreated.

Tritt unmittelbar nach dem Erstellen der Instanz des Geschäftsobjekts ein.

ObjectDataSourceEventArgs

ObjectDataSourceObjectEventHandler

Selecting.

Tritt vor dem Abrufen der Daten ein.

ObjectDataSourceSelectingEventArgs

ObjectDataSourceSelectingEventHandler

Inserting, Updating und Deleting.

Treten vor dem Durchführen eines Einfüge-, Aktualisierungs- oder Löschvorgangs ein.

ObjectDataSourceMethodEventArgs

ObjectDataSourceMethodEventHandler

Selected.

Tritt nach dem Abrufen der Daten ein.

ObjectDataSourceStatusEventArgs

ObjectDataSourceStatusEventHandler

Inserted, Updated, Deleted.

Erfolgen nach Abschluss des Einfüge-, Aktualisierungs- oder Löschvorgangs.

ObjectDataSourceStatusEventArgs

ObjectDataSourceStatusEventHandler

ObjectDisposing.

Tritt ein, bevor ein Geschäftsobjekt zerstört wird.

ObjectDataSourceDisposingEventArgs

ObjectDataSourceDisposingEventHandler

Dieser Abschnitt enthält zwei Codebeispiele. Im ersten Codebeispiel wird veranschaulicht, wie ein ObjectDataSource-Steuerelement zusammen mit einem Geschäftsobjekt und einem GridView-Steuerelement zum Abrufen und Anzeigen von Informationen verwendet wird. Das zweite Codebeispiel stellt das Beispiel-Basisgeschäftsobjekt bereit, das im ersten Codebeispiel verwendet wird.

Im folgenden Codebeispiel wird veranschaulicht, wie ein ObjectDataSource-Steuerelement zusammen mit einem Geschäftsobjekt und einem GridView-Steuerelement zum Abrufen und Anzeigen von Informationen verwendet wird. In diesem Beispiel und in vielen realen Situationen ist es u. U. nicht möglich oder nicht empfehlenswert, eine Standardinstanz des Geschäftsobjekts mit dem ObjectDataSource-Steuerelement zu verwenden. In diesem Beispiel kann die ObjectDataSource den Standardkonstruktor nicht erfolgreich aufrufen, da eine Ausnahme ausgelöst wird. In manchen Fällen ist der Standardkonstruktor möglicherweise geschützt, und in anderen Fällen wird das Geschäftsobjekt möglicherweise nicht in einen gewünschten Zustand initialisiert. Unabhängig vom Grund können Sie selbst eine Instanz des Geschäftsobjekts erstellen und die Instanz auf die ObjectInstance-Eigenschaft des ObjectDataSourceEventArgs-Objekts festlegen, das an den Handler übergeben wird. Dies ist die Geschäftsobjektinstanz, mit der die ObjectDataSource ihre Arbeit ausführt.

<%@ 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>

Im folgenden Codebeispiel wird das im vorangehenden Codebeispiel verwendete Beispiel-Basisgeschäftsobjekt veranschaulicht.

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;
    }
    
  }

}

System.Object
   System.EventArgs
    System.Web.UI.WebControls.ObjectDataSourceEventArgs

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 wird unter Windows Vista, Microsoft Windows XP SP2 und Windows Server 2003 SP1 unterstützt.

.NET Framework

Unterstützt in: 3.0, 2.0
Anzeigen:
© 2014 Microsoft