SqlDataSource.FilterExpression Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define uma expressão de filtragem que é aplicada quando o método Select(DataSourceSelectArguments) é chamado.
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
Valor da propriedade
Uma cadeia de caracteres que representa uma expressão de filtragem aplicada quando os dados são recuperados usando o método Select(DataSourceSelectArguments).
Exceções
A propriedade FilterExpression foi definida e o SqlDataSource está no modo DataReader.
Exemplos
O exemplo de código a seguir demonstra como recuperar dados do banco de dados Northwind e filtrá-los usando uma FilterExpression cadeia de caracteres e a FilterParameters coleção. A FilterExpression propriedade é aplicada sempre que o Select método é executado para recuperar dados. Neste exemplo, o FilterExpression contém um espaço reservado para um parâmetro de filtro, que está contido na FilterParameters coleção. Além disso, o parâmetro de filtro é um ControlParameter objeto associado à SelectedValue propriedade do DropDownList controle . Como o DropDownList controle tem sua AutoPostBack propriedade definida como true
, qualquer alteração na seleção do DropDownList controle faz com que a página poste as informações de volta no servidor e o GridView controle seja reassociado ao controle da fonte de dados com o novo filtro.
<!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>
Comentários
O FilterExpression valor da propriedade é uma expressão de cadeia de caracteres de formato (uma cadeia de caracteres processada pelo String.Format método) que usa os valores na FilterExpression coleção para quaisquer parâmetros de substituição incluídos na cadeia de caracteres. A sintaxe da expressão de filtro é a mesma sintaxe aceita pela RowFilter propriedade , pois a expressão de filtro é aplicada à RowFilter propriedade do DataView objeto retornado da execução do Select método . Para obter mais informações, consulte Expression.
Se você adicionar parâmetros à FilterParameters coleção, também poderá incluir espaços reservados de cadeia de caracteres de formato (por exemplo, "{0}")
na expressão para substituir por valores de parâmetro. Os espaços reservados são substituídos de acordo com o índice do parâmetro na FilterParameters coleção. Se um objeto na FilterParameters coleção for null
, o objeto será substituído por uma cadeia de caracteres vazia.
Você pode incluir parâmetros na FilterExpression propriedade . Se o parâmetro for um tipo de cadeia de caracteres ou cadeia de caracteres, coloque o parâmetro entre aspas simples. As aspas não são necessárias, se o parâmetro for um tipo numérico. A FilterParameters coleção contém os parâmetros avaliados para os espaços reservados encontrados na FilterExpression propriedade .
O SqlDataSource controle dá suporte à filtragem de dados somente quando estiver no DataSet modo .
A FilterExpression propriedade delega à FilterExpression propriedade do SqlDataSourceView objeto associado ao SqlDataSource controle .