ObjectDataSource.SelectParameters プロパティ

定義

SelectMethod プロパティで指定されたメソッドにより使用されるパラメーターのコレクションを取得します。

public:
 property System::Web::UI::WebControls::ParameterCollection ^ SelectParameters { System::Web::UI::WebControls::ParameterCollection ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public System.Web.UI.WebControls.ParameterCollection SelectParameters { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
member this.SelectParameters : System.Web.UI.WebControls.ParameterCollection
Public ReadOnly Property SelectParameters As ParameterCollection

プロパティ値

SelectMethod プロパティで指定されたメソッドにより使用されるパラメーターのコレクション。

属性

次のコード例では、コントロールを使用して 1 つのデータ レコードを ObjectDataSource 取得し、コントロールに表示する方法を DetailsView 示します。 コントロールは ObjectDataSource 、 クラスの メソッドを呼び出 GetEmployee して、特定の従業員レコードを EmployeeLogic 取得します。 メソッドには GetEmployee 従業員 ID パラメーターが必要です。 コントロールはObjectDataSource、マークアップの 要素をQueryStringParameter使用して、URL から指定されたクエリ文字列パラメーターの値を取得し、それを メソッドに渡すオブジェクトをGetEmployee作成QueryStringParameterします。

他のパラメーター クラスを使用して、コントロール プロパティ、フォーム フィールド、Cookie、ASP.NET プロファイル データ、セッション状態など、他のソースから値を取得できます。 また、マークアップで定義されているパラメーター オブジェクトを使用して、ハードコーディングされた値を select メソッドに渡すこともできます。 使用可能なパラメーター クラスの詳細については、「 フィルター処理のためのデータ ソースコントロールでのパラメーターの使用」を参照してください。

この例を実行するには、次のものが必要です。

  • Northwind Traders データベースに接続する という名前 NorthwindConnection の接続文字列を持つ Web サイト。 詳細については、クラスの概要に関するページを ObjectDataSource 参照してください。

  • クラスの EmployeeLogic 概要のコード例の 1 つとして示されている ObjectDataSource クラス。 クラス ファイルは、App_Code フォルダーに配置する必要があります。

  • サンプル コードは、.aspx ページとして実行できます。 クエリ文字列パラメーターを指定せずにページを要求すると、エラー メッセージが表示されます。 .aspx ファイルの名前の後などの ?empid=1 クエリ文字列を使用してページを要求すると、要求された従業員の詳細が表示されます。

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="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">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ObjectDataSource - C# Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:detailsview
          id="DetailsView1"
          runat="server"
          datasourceid="ObjectDataSource1">
        </asp:detailsview>

<!-- Security Note: The ObjectDataSource uses a QueryStringParameter,
     Security Note: which does not perform validation of input from the client.
     Security Note: To validate the value of the QueryStringParameter, handle the Selecting event. -->

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetEmployee"
          typename="Samples.AspNet.CS.EmployeeLogic" >
          <selectparameters>
            <asp:querystringparameter name="EmployeeID" querystringfield="empid" defaultvalue="-1" />
          </selectparameters>
        </asp:objectdatasource>

    </form>
  </body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="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">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ObjectDataSource - VB Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:detailsview
          id="DetailsView1"
          runat="server"
          datasourceid="ObjectDataSource1">
        </asp:detailsview>

<!-- Security Note: The ObjectDataSource uses a QueryStringParameter,
     Security Note: which does not perform validation of input from the client.
     Security Note: To validate the value of the QueryStringParameter, handle the Selecting event. -->

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetEmployee"
          typename="Samples.AspNet.VB.EmployeeLogic" >
          <selectparameters>
            <asp:querystringparameter name="EmployeeID" querystringfield="empid" defaultvalue="-1" />
          </selectparameters>
        </asp:objectdatasource>

    </form>
  </body>
</html>

注釈

プロパティは SelectParameters 、コントロールに SelectParameters 関連付けられている オブジェクトの ObjectDataSourceView プロパティを ObjectDataSource 取得します。

コレクションにパラメーターを SelectParameters 宣言的に追加するには、 要素を使用するか、イベントの SelectParameters ハンドラー Selecting でプログラムを使用します。 実行時に、 要素に SelectParameters 一覧表示されているパラメーターが最初にコレクションに追加されます。 コレクション内のパラメーターは、イベントのハンドラー Selecting によって追加または削除されます。 イベントは Selecting 、メソッドが実行される前に Select 発生します。

メソッドを実行するSelect前に、コレクションに含まれるパラメーターの名前と型が、 プロパティでSelectParametersSelectMethod指定されたメソッドのシグネチャと一致している必要があります。 たとえば、 という名前 GetEmployeesByStateAndAge の select メソッドが パラメーターとして と 整数を受け取る string 場合、コレクションには 2 つのパラメーターが SelectParameters 含まれている必要があります。 最初のパラメーターは文字列に解決する必要があり、2 番目のパラメーターは整数に解決する必要があります。 どちらのパラメーターも、 要素のマークアップで SelectParameters 指定できます。 または、イベント ハンドラーに追加することも、1 つのパラメーターを Selecting マークアップに追加して、もう 1 つのパラメーターをプログラムで追加することもできます。

詳細については、「ObjectDataSource コントロールSelectMethodと プロパティでパラメーターを使用する」を参照してください。

重要

イベント ハンドラーの Selecting コード、または プロパティで指定されたメソッド内で SelectMethod 、クライアントから受け取ったパラメーター値を検証していることを確認します。

適用対象

こちらもご覧ください