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 и отфильтровать их с помощью FilterExpression строки и FilterParameters коллекции. Свойство FilterExpression применяется в любой момент, когда Select метод выполняется для извлечения данных. В этом примере FilterExpression содержит заполнитель для параметра фильтра, который содержится в FilterParameters коллекции. Кроме того, параметр фильтра — это ControlParameter объект, привязанный к SelectedValue свойству DropDownList элемента управления.
DropDownList Так как элемент управления имеет значение свойстваtrueAutoPostBack, любое изменение в выборе элемента 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 свойству DataView объекта, возвращаемого из выполнения Select метода. Дополнительные сведения см. в разделе Expression.
При добавлении параметров в FilterParameters коллекцию можно также включить заполнители строк формата (например, "{0}") в выражение для замены значений параметров. Заполнители заменяются в соответствии с индексом параметра в FilterParameters коллекции. Если объект в FilterParameters коллекции имеет значение null, объект будет заменен пустой строкой.
В свойство можно включить параметры FilterExpression . Если параметр является строковым или символьным типом, заключите параметр в одинарные кавычки. Кавычки не обязательны, если параметр является числовым типом. Коллекция FilterParameters содержит параметры, вычисляемые для заполнителей, найденных в свойстве FilterExpression .
Элемент SqlDataSource управления поддерживает фильтрацию данных только в режиме DataSet .
Свойство FilterExpression делегирует FilterExpression свойству объекта, связанного SqlDataSourceView с элементом SqlDataSource управления.