英語で読む

次の方法で共有


ObjectDataSourceObjectEventHandler 代理人

定義

ObjectCreating コントロールの ObjectCreated イベントおよび ObjectDataSource イベントを処理するメソッドを表します。

C#
public delegate void ObjectDataSourceObjectEventHandler(object sender, ObjectDataSourceEventArgs e);

パラメーター

sender
Object

イベントのソース。

e
ObjectDataSourceEventArgs

イベント データを格納している ObjectDataSourceEventArgs

次のコード例では、ビジネス オブジェクトとコントロールでコントロールを ObjectDataSource 使用して情報を GridView 取得および表示する方法を示します。 この例では、多くの実際のシナリオと同様に、 コントロールでビジネス オブジェクト ObjectDataSource の既定のインスタンスを使用できないか、適切でない場合があります。 この例では、 ObjectDataSource は例外をスローするため、パラメーターなしのコンストラクターを正常に呼び出すことができません。 パラメーターなしのコンストラクターが保護されている場合もあれば、ビジネス オブジェクトを目的の状態に初期化しない場合もあります。 理由が何であれ、ビジネス オブジェクトを自分でインスタンス化し、ハンドラーに ObjectInstance 渡されるオブジェクトの ObjectDataSourceEventArgs プロパティにインスタンスを設定できます。 これは、 がその ObjectDataSource 作業を実行するために使用するビジネス オブジェクト インスタンスです。

ASP.NET (C#)
<%@ 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>

次のコード例は、前の例で使用した基本的なビジネス オブジェクトの例を示しています。

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

注釈

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

拡張メソッド

GetMethodInfo(Delegate)

指定したデリゲートによって表されるメソッドを表すオブジェクトを取得します。

適用対象

製品 バージョン
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

こちらもご覧ください