Фильтрация базы данных при помощи параметров в ASP.NET 2.0 - Фильтрация на основе значения строки запроса (QueryString)
ОГЛАВЛЕНИЕ
Фильтрация на основе значения строки запроса (QueryString)
В базе данных Northwind каждый товар принадлежит какой-либо категории. Тем самым, нам может понадобиться получить страницу со списком всех категорий в базе данных, где каждая категория имеет гиперссылку на страницу, которая отображает все продукты данной категории. Одним из путей достижения этого является создание двух страниц: Categories.aspx, на которой будет список всех категорий, и ProductsInCategory.aspx, которая перечисляет все товары категории. Препятствием тут является указание категории товаров, которую нужно отобразить на странице ProductsInCategory.aspx. Хотя существует множество техник передачи информации между страницами, одним из наиболее часто используемых является передача посредством строки запроса. Используя данный подход мы можем посетить страницу с товарами посредством ссылки на ресурс ProductsInCategory.aspx?CategoryID=categoryID и затем можем отобразить товары в категории categoryID.
Чтобы использовать значение строки запроса для фильтрации результатов просто выберите опцию QueryString в выпадающем списке "Parameter source". Затем, введите название значения строки запроса, которое вы хотите использовать в текстовом поле строки запроса. После того как вы это выполните, декларативная разметка SqlDataSource будет включать в себя экземпляр <asp:QueryStringParameter> в наборе SelectParameters. Экземпляр <asp:QueryStringParameter>, как это показано ниже, предоставляет название параметра (Name), название значения строки запроса (QueryStringField) и тип Type:
<asp:SqlDataSource ID="ID" runat="server" ConnectionString="connectionString"
ProviderName="providerName"
SelectCommand="SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products] WHERE ([CategoryID] = ?)">
<SelectParameters>
<asp:QueryStringParameter Type="Int32"
Name="CategoryID"
QueryStringField="CategoryID" />
</SelectParameters>
</asp:SqlDataSource>
Следующие изображения демонстрируют страницу Categories.aspx, которая содержит список всех категорий вместе с ссылкой на товары (View Products), и страницу ProductsInCategory.aspx, которая была посещена посредством ProductsInCategory.aspx?CategoryID=1 (просмотр товаров категории напитков (Beverages)).
Полный список категорий, где каждая имеет ссылку на список продуктов
Товары категории напитков (ProductsInCategory.aspx?CategoryID=1)
