SqlDataSourceView.FilterExpression Egenskap

Definition

Hämtar eller anger ett filtreringsuttryck som används när Select metoden anropas.

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

Egenskapsvärde

En sträng som representerar ett filtreringsuttryck som används när data hämtas med metoden Select(DataSourceSelectArguments) .

Undantag

Egenskapen FilterExpression angavs när SqlDataSource är i DataReader läget.

Exempel

Följande kodexempel visar hur du hämtar data från Northwind-databasen och filtrerar dem med hjälp av FilterExpression egenskaperna och FilterParameters . Kontrollens FilterExpressionSqlDataSource egenskap tillämpas varje gång Select metoden körs för att hämta data. I det här exemplet FilterExpression innehåller egenskapen en platshållare för en filterparameter som finns i FilterParameters samlingen. I det här exemplet är filterparametern ett ControlParameter objekt som är bundet SelectedValue till kontrollens DropDownList egenskap. DropDownList Eftersom kontrollen har dess AutoPostBack egenskap inställd på true, leder alla ändringar i DropDownList markeringen till att sidan skickas till servern och GridView kontrollen binds om till datakällkontrollen med det nya filtret.

<!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>

Kommentarer

Syntaxen som används för egenskapen FilterExpression är en formatsyntax i strängformat. Du kan inkludera parametrar i egenskapen FilterExpression . Om parametertypen är sträng eller tecken omger du parametern inom enkla citattecken. Citattecken krävs inte om parametern är en numerisk typ.

Samlingen FilterParameters innehåller de parametrar som utvärderas för de platshållare som finns i egenskapen FilterExpression .

Kontrollen SqlDataSource stöder endast filtrering av data när den är i DataSet läge.

Värdet för egenskapen FilterExpression lagras i visningstillstånd.

Important

Du bör verifiera alla filterparametervärden som du får från klienten. Körningen ersätter helt enkelt parametervärdet i filteruttrycket och tillämpar det på DataView det objekt som returneras av Select metoden. Om du använder FilterExpression egenskapen som ett säkerhetsmått för att begränsa antalet objekt som returneras måste du verifiera parametervärdena innan filtreringen sker.

Gäller för

Se även