共用方式為


SqlDataSourceView.FilterExpression 屬性

定義

取得或設定當呼叫 Select 時會套用的篩選運算式。

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

屬性值

String

字串,代表當使用 Select(DataSourceSelectArguments) 方法抓取資料時套用的篩選運算式。

例外狀況

FilterExpression 處於 SqlDataSource 模式時設定了 DataReader 屬性。

範例

下列程式碼範例示範如何從 Northwind 資料庫擷取資料,並使用 和 FilterParameters 屬性加以篩選 FilterExpressionFilterExpression每當方法執行以擷取資料時 Select ,就會套用 控制項的 SqlDataSource 屬性。 在此範例中 FilterExpression ,屬性包含篩選參數的預留位置,該參數包含在集合中 FilterParameters 。 在此範例中,filter 參數是 ControlParameter 系結至 SelectedValue 控制項屬性的物件 DropDownList 。 因為控制項的 屬性設定 true 為 ,所以 DropDownList 選取範圍中的任何 DropDownList 變更都會讓頁面張貼到伺服器,而 GridView 控制項會使用新的篩選準則重新系結至資料來源控制項。 AutoPostBack

<!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 參數。 如果參數的類型是字串或字元,請將參數括在單引號中。 如果參數是數數值型別,則不需要引號。

FilterParameters集合包含針對 屬性中找到 FilterExpression 的預留位置評估的參數。

只有當處於模式時 DataSet ,控制項 SqlDataSource 才支援篩選資料。

屬性的值 FilterExpression 會儲存在檢視狀態中。

重要

您應該驗證您從用戶端收到的任何篩選參數值。 執行時間只會將參數值取代為篩選運算式,並將它套用至 DataView 方法所傳 Select 回的物件。 如果您使用 FilterExpression 屬性做為安全性量值來限制傳回的專案數,則必須在篩選發生之前驗證參數值。

適用於

另請參閱