Использование элементов управления ListView и DataPager в ASP.NET 3.5 - Реализация простого примера сортировки
ОГЛАВЛЕНИЕ
Реализация простого примера сортировки
Чтобы продемонстрировать использование встроенного механизма сортировки ListView, давайте рассмотрим простой пример. (Все рассмотренные примеры доступны в конце статьи.) Давайте расширим Product Listing включая интерфейс сортировки. В частности, давайте добавим две сортировочные опции: сортировка по ProductName и сортировка по UnitPrice. Для реализации мы просто добавим два LinkButtons (либо Buttons, либо ImageButtons) в LayoutTemplate элемента ListView с соответствующими значениями свойств CommandName и CommandArgument.
<asp:ListView ID="ProductList" runat="server" DataSourceID="ProductDataSource">
<LayoutTemplate>
<h3>Product Listing</h3>
[<asp:LinkButton runat="server" ID="SortByName" CommandName="Sort"
CommandArgument="ProductName">Sort by Name</asp:LinkButton>]
| [<asp:LinkButton runat="server" ID="SortByPrice" CommandName="Sort"
CommandArgument="UnitPrice">Sort by Price</asp:LinkButton>]
<blockquote>
<asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder>
</blockquote>
</LayoutTemplate>
...
</asp:ListView>
(Для краткости я опустил большую часть разметки ListView и сфокусировался на двух сортирующих LinkButtons. Я также опустил элемент управления AccessDataSource, который привязан к ListView.)
Обратите внимание на то, что два сортирующих LinkButtons обладают свойствами CommandName, установленными в значение Sort и свойства CommandArgument, установленные в соответствующие названия полей данных. Когда нажимают одну из LinkButtons, то будет выполнен постбэк и ListView автоматически вызовет метод Sort, передавая значение CommandArgument элемента LinkButton в качестве сортировочного выражения. Направление сортировки сохранено в качестве внутреннего значения и будет автоматически переключено в случае, если одно и то же сортировочное выражение будет изменено дважды подряд. Следовательно, если посетитель нажмет на ссылку "Sort by Price" дважды подряд , то в первый раз товары будут отсортированы в возрастающем порядке (от дешевого к самому дорогому), но во второй раз направление сортировки изменится в сторону убывания.
Следующие два рисунка демонстрируют ссылки LinkButtons в действии. Первое изображение демонстрирует экран после того, как ссылка "Sort by Price" была нажата впервые. Товары были отсортированы в возрастающем порядке.

Второй демонстрирует результат сортировки после того, как мы во второй раз нажали ссылку "Sort by Price" - на этот раз товары были отсортированы в убывающем порядке.
