次の方法で共有


ObjectDataSourceEventArgs クラス

定義

ObjectCreating コントロールの ObjectCreated イベントおよび ObjectDataSource イベントのデータを提供します。

public ref class ObjectDataSourceEventArgs : EventArgs
public class ObjectDataSourceEventArgs : EventArgs
type ObjectDataSourceEventArgs = class
    inherit EventArgs
Public Class ObjectDataSourceEventArgs
Inherits EventArgs
継承
ObjectDataSourceEventArgs

このセクションには、2 つのコード例が含まれています。 最初のコード例では、ビジネス オブジェクトとコントロールでコントロールを ObjectDataSource 使用して情報を GridView 取得および表示する方法を示します。 2 番目のコード例では、最初のコード例で使用する基本的なビジネス オブジェクトの例を示します。

次のコード例では、ビジネス オブジェクトとコントロールでコントロールを 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 メソッドはstaticコントロールによってObjectDataSource呼び出されません。

コントロールは ObjectDataSource 、基になるビジネス オブジェクトをライフサイクルのさまざまな時点で操作するために処理できる多くのイベントを公開します。 次の表に、イベントと、関連 EventArgs するクラスとイベント ハンドラー デリゲートの一覧を示します。

Event EventArgs EventHandler
ObjectCreating.

ビジネス オブジェクトのインスタンスが作成される直前に発生します。
ObjectDataSourceEventArgs ObjectDataSourceObjectEventHandler
ObjectCreated.

ビジネス オブジェクトのインスタンスが作成された直後に発生します。
ObjectDataSourceEventArgs ObjectDataSourceObjectEventHandler
Selecting.

データが取得される前に発生します。
ObjectDataSourceSelectingEventArgs ObjectDataSourceSelectingEventHandler
InsertingUpdating、および 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)

適用対象

こちらもご覧ください