Самое удивительное в том, что я уже много раз переступал через обстоятельства. И в случае, если через какое-то время что-то случается, надо лишь вспомнить об этом. Или когда что-то ДЕЙСТВИТЕЛЬНО СЛУЧИТСЯ.
Автор: admin
Asp.Net ListView Control — Sorting Data
Начнем.
Если вы используете data source control, то сортировка может быть выполнена в ListView control без написания строк кода — она выполняется автоматически ListView и его data sourse control.
В случае использования контрола, включить сортировку — это добавить правильно настроенную LinkButton, Button или ImageButton в ListView’s LayoutTemplate. Такая кнопка, будучи нажатой, вызовет постбэк и инициирует процесс сортировки. Чтобы это заработало, LinkButton, Button или ImageButton должны иметь свойство CommandName, установленное в Sort, и свойство CommandArgument, установленое в data field, по которому сортировать.
Пример выполнения простой сортировки без кода.
Для иллюстрации использования встроенного в ListView механизма сортировки, давайте рассмотрим простой пример (этот пример, как и другие рассматриваемые тут, доступен для загрузки в конце статьи). Давайте расширим Список Продуктов из статьи Displaying Data with the ListView (http://aspnet.4guysfromrolla.com/articles/122607-1.aspx), добавив к нему интерфейс сортировки. В точности, добавим два способа сортировки: по ProductName и по UnitPrice. Для этого просто добавим две LinkButton (или Button, или ImageButton) в ListView’s LayoutTemplate с соответствующими значениями свойств 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>]
<asp:PlaceHolder runat=»server» ID=»itemPlaceholder»></asp:PlaceHolder></LayoutTemplate>
... </asp:ListView>
(Я убрал часть разметки ListView для краткости, сосредоточив внимание на двух сортировочных LinkButton’s. Я также пропустил AccessDataSource control, к которыму привязан ListView.)
Заметим, что две сортировочные LinkButtons имеют свойства CommandName, установленные в Sort, и свойства CommandArgument, установленные в соответствующие имена полей с данными. Когда одна их этих LinkButtons кликнута, происходит постбэк и ListView автоматически вызывает свой Sort метод, использующий LinkButton’s CommandArgument значение в качестве sort expression.
Источник: http://aspnet.4guysfromrolla.com/articles/011608-1.aspx (англ.)