ObjectDataSourceObjectEventHandler デリゲート
アセンブリ: System.Web (system.web.dll 内)

Public Delegate Sub ObjectDataSourceObjectEventHandler ( _ sender As Object, _ e As ObjectDataSourceEventArgs _ )
public delegate void ObjectDataSourceObjectEventHandler ( Object sender, ObjectDataSourceEventArgs e )
public delegate void ObjectDataSourceObjectEventHandler ( Object^ sender, ObjectDataSourceEventArgs^ e )
/** @delegate */ public delegate void ObjectDataSourceObjectEventHandler ( Object sender, ObjectDataSourceEventArgs e )

ObjectDataSourceObjectEventHandler デリゲートを作成する場合は、イベントを処理するメソッドを識別してください。イベントをイベント ハンドラに関連付けるには、デリゲートのインスタンスをイベントに追加します。デリゲートを削除しない限り、そのイベントが発生すると常にイベント ハンドラが呼び出されます。イベント ハンドラ デリゲートの詳細については、「イベントの利用」を参照してください。

ビジネス オブジェクトおよび GridView コントロールで、ObjectDataSource コントロールを使用して情報を取得および表示する方法を次のコード例に示します。実世界の多くのシナリオでは、この例のように ObjectDataSource コントロールでビジネス オブジェクトの既定インスタンスを使用するのは不可能な場合がありますし、また適切でない場合があります。この例の場合、ObjectDataSource は既定のコンストラクタを正常に呼び出すことができません。これは例外をスローするからです。いくつかのケースでは、既定のコンストラクタが保護される場合があります。またその他のケースでは、既定のコンストラクタがビジネス オブジェクトを目的の状態に初期化しない場合があります。いずれにせよ、ビジネス オブジェクトは自身でインスタンス化できますし、ハンドラに渡される ObjectDataSourceEventArgs オブジェクトの ObjectInstance プロパティにそのインスタンスを設定できます。ObjectDataSource は、このビジネス オブジェクトのインスタンスを使用して処理を実行します。
<%@ Import namespace="Samples.AspNet.VB" %> <%@ Page language="vb" %> <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> <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>
<%@ Import namespace="Samples.AspNet.CS" %> <%@ Page language="c#" %> <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> <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>
前の例で使用した基本ビジネス オブジェクトのコード例を次に示します。
Imports System 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 'New Public Sub New(ByVal data As String) _data = data End Sub 'New 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 'EmployeeLogic End Namespace ' Samples.AspNet.VB
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; } } }

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- ObjectDataSourceObjectEventHandler デリゲートのページへのリンク