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 属性,且 SqlDataSource 处于 DataReader 模式。

示例

下面的代码示例演示如何从 Northwind 数据库中检索数据并使用字符串和 FilterParameters 集合对其进行FilterExpression筛选。 每当 FilterExpression 执行 方法以检索数据时, Select 将应用 属性。 在此示例中, FilterExpression 包含集合中包含的筛选器参数的 FilterParameters 占位符。 此外,filter 参数是绑定到 ControlParameterSelectedValue 控件的 属性的对象 DropDownListDropDownList由于 控件的 AutoPostBack 属性设置为 true,因此控件的选择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属性值是一个格式字符串表达式 (由String.Format方法处理) 处理,该方法将集合中的FilterExpression值用于字符串中包含的任何替换参数。 筛选器表达式语法与 属性接受RowFilter的语法相同,因为筛选器表达式应用于RowFilter执行Select方法时返回的 DataView 对象的 属性。 有关详细信息,请参阅 Expression

如果将参数添加到 FilterParameters 集合中,还可以在表达式中包含格式字符串占位符 (, "{0}") 以替换参数值。 根据集合中 FilterParameters 参数的索引替换占位符。 如果集合中的 FilterParameters 对象为 null,该对象将替换为空字符串。

可以在 属性中包含 FilterExpression 参数。 如果参数是字符串或字符类型,请将参数括在单引号中。 如果参数是数值类型,则不需要引号。 集合 FilterParameters 包含为 属性中找到 FilterExpression 的占位符计算的参数。

仅当处于 DataSet 模式时, 控件SqlDataSource才支持筛选数据。

属性FilterExpression委托给FilterExpressionSqlDataSource 控件关联的 对象的 属性SqlDataSourceView

适用于

另请参阅