ObjectDataSource.SelectMethod プロパティ
アセンブリ: System.Web (system.web.dll 内)

Dim instance As ObjectDataSource Dim value As String value = instance.SelectMethod instance.SelectMethod = value
/** @property */ public String get_SelectMethod () /** @property */ public void set_SelectMethod (String value)
ObjectDataSource がデータを取得するために使用するメソッドまたは関数の名前を表す文字列。既定値は空の文字列 ("") です。

指定されたメソッドがメソッド シグネチャを持っている場合もありますが、ObjectDataSource コントロールでメソッドを正常に呼び出すには、メソッドは次の表に示される型のいずれかを返す必要があります。
戻り値の型 | |
---|---|
IEnumerable | |
DataTable | |
DataView | |
DataSet の最初の DataTable が抽出されます。また、DataView が作成され、Select メソッドによって返されます。 | |
オブジェクトは、1 要素の IEnumerable コレクションにラップされ、Select メソッドによって返されます。 |
SelectMethod プロパティは、ObjectDataSource コントロールに関連付けられた ObjectDataSourceView オブジェクトの SelectMethod プロパティに処理を代行させます。
オブジェクトの有効期間
SelectMethod プロパティで識別されるメソッドには、インスタンス メソッドまたは static (Visual Basic の場合は Shared) メソッドを指定できます。インスタンス メソッドの場合は、SelectMethod プロパティで指定されたメソッドが呼び出されるたびにビジネス オブジェクトが作成され、破棄されます。ObjectCreated イベントと ObjectCreating イベントを処理することで、SelectMethod プロパティで指定されたメソッドが呼び出される前に、ビジネス オブジェクトを使用できます。SelectMethod プロパティで指定されたメソッドが呼び出された後に発生する ObjectDisposing イベントを処理することもできます。ビジネス オブジェクトが IDisposable インターフェイスを実装している場合は、オブジェクトが破棄される前に Dispose メソッドが呼び出されます。メソッドが static (Visual Basic では Shared) の場合、ビジネス オブジェクトは作成されず、ObjectCreated、ObjectCreating、および ObjectDisposing の各イベントを処理できません。
パラメータは、次のソースから SelectParameters コレクションに追加されます。
まず、SelectParameters 要素にリストされたパラメータが追加されます。次に、Deleting イベントでパラメータがプログラムによって追加または削除されます。このイベントは、Select メソッドが実行される前に発生します。メソッドは、パラメータがマージされた後に解決されます。メソッドの解決については、次のセクションで説明します。
Select メソッドが呼び出されると、データ バインド コントロールのデータ フィールド、SelectParameters 要素で宣言によって作成されたパラメータ、および Selecting イベント ハンドラで追加されたパラメータがすべてマージされます (詳細については、前のセクションを参照してください)。次に、ObjectDataSource コントロールは、呼び出すメソッドの検索を試みます。まず、SelectMethod プロパティで指定された名前を持つ 1 つ以上のメソッドが検索されます。一致するメソッドが見つからない場合、InvalidOperationException 例外がスローされます。一致するメソッドが見つかった場合は、一致するパラメータ名が検索されます。たとえば、TypeName プロパティで指定された型に SelectARecord という名前のメソッドが 2 つあるとします。一方の SelectARecord には、ID というパラメータが 1 つあり、もう一方の SelectARecord には、Name と Number という 2 つのパラメータがあります。SelectParameters コレクションに ID という名前のパラメータが 1 つしかない場合、ID パラメータだけを持つ SelectARecord メソッドが呼び出されます。メソッドの解決時に、パラメータの型はチェックされません。パラメータの順序は重要ではありません。
DataObjectTypeName プロパティが設定されている場合には、メソッドは別の方法で解決されます。ObjectDataSource は、DataObjectTypeName プロパティで指定された型のパラメータを 1 つ受け取る SelectMethod プロパティで指定された名前のメソッドを検索します。この場合、パラメータの名前は重要ではありません。

GridView コントロールが Web フォーム上の ObjectDataSource コントロールを使用してデータを表示する方法を次のコード例に示します。ObjectDataSource は、TypeName プロパティで部分修飾クラス名または完全修飾クラス名を識別し、SelectMethodプロパティでデータを取得するために呼び出されるメソッドを識別します。実行時にオブジェクトが作成され、メソッドはリフレクションを使用して呼び出されます。GridView コントロールは、SelectMethod プロパティで指定されたメソッドによって返される IEnumerable コレクションに対して列挙処理を実行し、データを表示します。
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="Samples.AspNet.VB" %> <%@ Page language="vb" %> <html> <head> <title>ObjectDataSource - Visual Basic Example</title> </head> <body> <form id="Form1" method="post" runat="server"> <asp:gridview id="GridView1" runat="server" datasourceid="ObjectDataSource1" /> <asp:objectdatasource id="ObjectDataSource1" runat="server" selectmethod="GetAllEmployees" typename="Samples.AspNet.VB.EmployeeLogic" /> </form> </body> </html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %> <%@ Page language="c#" %> <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:objectdatasource id="ObjectDataSource1" runat="server" selectmethod="GetAllEmployees" typename="Samples.AspNet.CS.EmployeeLogic" /> </form> </body> </html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.JSL" Assembly="Samples.AspNet.JSL" %> <%@ Page language="VJ#" %> <html> <head> <title>ObjectDataSource - VJ# Example</title> </head> <body> <form id="Form1" method="post" runat="server"> <asp:gridview id="GridView1" runat="server" datasourceid="ObjectDataSource1" /> <asp:objectdatasource id="ObjectDataSource1" runat="server" selectmethod="GetAllEmployees" typename="Samples.AspNet.JSL.EmployeeLogic" /> </form> </body> </html>

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- ObjectDataSource.SelectMethod プロパティのページへのリンク