次の方法で共有


SqlDataSource.FilterExpression プロパティ

定義

Select(DataSourceSelectArguments) メソッドが呼び出されるときに適用されるフィルター式を取得または設定します。

public:
 property System::String ^ FilterExpression { System::String ^ get(); void set(System::String ^ value); };
public string FilterExpression { get; set; }
member this.FilterExpression : string with get, set
Public Property FilterExpression As String

プロパティ値

Select(DataSourceSelectArguments) メソッドを使用してデータを取得するときに適用されるフィルター式を表す文字列。

例外

FilterExpression プロパティが設定され、SqlDataSourceDataReader モードです。

次のコード例では、Northwind データベースからデータを取得し、文字列と コレクションを FilterExpression 使用してフィルター処理する方法を FilterParameters 示します。 プロパティは FilterExpression 、メソッドを実行してデータを Select 取得するたびに適用されます。 この例では、 FilterExpression には、コレクションに含まれるフィルター パラメーターのプレースホルダーが FilterParameters 含まれています。 さらに、filter パラメーターは、 ControlParameter コントロールの DropDownList プロパティにSelectedValueバインドされるオブジェクトです。 コントロールの DropDownList プロパティが AutoPostBacktrue設定されているため、コントロールの選択 DropDownList を変更すると、ページはサーバーに情報をポストバックし、 GridView コントロールは新しいフィルターを使用してデータ ソース コントロールに再バインドされます。

<!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 runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">

            <p>Show all employees with the following title:
            <asp:DropDownList
                id="DropDownList1"
                runat="server"
                AutoPostBack="True">
                <asp:ListItem Selected="True">Sales Representative</asp:ListItem>
                <asp:ListItem>Sales Manager</asp:ListItem>
                <asp:ListItem>Vice President, Sales</asp:ListItem>
            </asp:DropDownList></p>

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees"
                FilterExpression="Title='{0}'">
                <FilterParameters>
                    <asp:ControlParameter Name="Title" ControlId="DropDownList1" PropertyName="SelectedValue"/>
                </FilterParameters>
            </asp:SqlDataSource>

            <p><asp:GridView
                id="GridView1"
                runat="server"
                DataSourceID="SqlDataSource1"
                AutoGenerateColumns="False">
                <columns>
                    <asp:BoundField Visible="False" DataField="EmployeeID" />
                    <asp:BoundField HeaderText="First Name" DataField="FirstName" />
                    <asp:BoundField HeaderText="Last Name" DataField="LastName" />
                </columns>
            </asp:GridView></p>

        </form>
    </body>
</html>
<!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 runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">

            <p>Show all employees with the following title:
            <asp:DropDownList
                id="DropDownList1"
                runat="server"
                AutoPostBack="True">
                <asp:ListItem Selected="True">Sales Representative</asp:ListItem>
                <asp:ListItem>Sales Manager</asp:ListItem>
                <asp:ListItem>Vice President, Sales</asp:ListItem>
            </asp:DropDownList></p>

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees"
                FilterExpression="Title='{0}'">
                <FilterParameters>
                    <asp:ControlParameter Name="Title" ControlId="DropDownList1" PropertyName="SelectedValue"/>
                </FilterParameters>
            </asp:SqlDataSource>

            <p><asp:GridView
                id="GridView1"
                runat="server"
                DataSourceID="SqlDataSource1"
                AutoGenerateColumns="False">
                <columns>
                    <asp:BoundField Visible="False" DataField="EmployeeID" />
                    <asp:BoundField HeaderText="First Name" DataField="FirstName" />
                    <asp:BoundField HeaderText="Last Name" DataField="LastName" />
                </columns>
            </asp:GridView></p>

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

注釈

FilterExpressionプロパティ値は、文字列に含まれる置換パラメーターに対してコレクション内FilterExpressionの値を使用する書式指定文字列式 (メソッドによってString.Format処理される文字列) です。 フィルター式の構文は、 プロパティでRowFilter受け入れられるのと同じ構文です。フィルター式は、 メソッドの実行Selectから返されるオブジェクトの DataView プロパティにRowFilter適用されるためです。 詳細については、「Expression」を参照してください。

コレクションにパラメーターを追加する FilterParameters 場合は、書式指定文字列プレースホルダーを含めることもできます (たとえば、 "{0}") 式にパラメーター値を置き換えます)。 プレースホルダーは、コレクション内 FilterParameters の パラメーターのインデックスに従って置き換えられます。 コレクション内の オブジェクトが FilterParametersnull場合、オブジェクトは空の文字列に置き換えられます。

プロパティにはパラメーターを FilterExpression 含めることができます。 パラメーターが文字列型または文字型の場合は、パラメーターを単一引用符で囲みます。 パラメーターが数値型の場合、引用符は必要ありません。 FilterParametersコレクションには、 プロパティにあるプレースホルダーに対して評価されるパラメーターがFilterExpression含まれています。

コントロールは SqlDataSource 、モードの場合にのみデータのフィルター処理を DataSet サポートします。

プロパティは FilterExpression 、コントロールに FilterExpression 関連付けられている オブジェクトの SqlDataSourceView プロパティにデリゲートします SqlDataSource

適用対象

こちらもご覧ください