среда, 5 августа 2009 г.

ASP.NET: paging для GridView

Все, что нужно для реализации paging или постраничного вывода компонента GridView — установить параметр AllowPaging в true, определить размеры страницы PageSize и обработать событие PageIndexChanging.

Например так:
protected void MainGrid_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
try
{
MainGrid.PageIndex = e.NewPageIndex;
MainGrid.DataSource = gridDataSource;
MainGrid.DataBind();
}
catch (Exception) {}
}

gridDataSource — источник данных для GridView (в приведенных примерах — под именем MainGridView). В примере он не описан специально, потому что заполнение источника данных в каждом конкретном случае происходит по-разному — от формирования на месте до использования внешних классов и библиотек.

По вкусу настраиваются параметры PagerSettings и PagerStyle компонента GridView. В первом можно определить пложение, количество и набор элементов управления paging 'ом. Во втором — задать стили CSS для отображения первых.

Часто бывает нужно запоминать номер текущей страницы GridView. Сделать это можно самыми разными способами — передавать в качестве явного и неявного (например, с помощью UrlRewriter) параметра для страницы, хранить в сессии пользователя или cookies.

Важное замечание. У базового механизма paging в ASP.NET есть один существенный недостаток — обработчики нажатий на элементы управления текущей страницы реализованы на JavaScript. Кроме гипотезы «у пользователя отключен JavaScript», ощутимым минусом подобного подхода являются возможные проблемы индексации поисковыми системами и формирования ссылочной базы сайта. В случае наличия проблем подобного рода, рекомендуется реализовывать механизм paging самостоятельно.

Комментариев нет: