Пейджер для ASP.NET приложений написанный ещё в 2006 году и несколько раз полностью переписанный. В пейджерах других разработчиков меня не устраивало то, что пейджеры не были достаточно гибкими в настройках. К примеру, невозможно полностью переписать HTML код или зависимость от ViewState'а. Или отсутсвие шорткатов для перелистывания страиц.
В своём решении Я постарался решить все эти минусы. Что он умеет:
В сборке идёт 2 версии пейджера:
Для использования пейджера необходимо написать шаблон, установить максимальное кол-во элементов на странице и обработать событие OnPageNumberChanged.
HiddenPagesTemplate
— Шаблон рендерится когда необходимо скрыть не отображаемые страницы. Максимальное кол-во не отображаемых страниц зависит от свойства MaxVisiblePages
ActivePageTemplate
— Текущая страницаPageTemplate
— Страницы на которые можно перейтиSeparatorTemplate
— Разделитель между страницамиHeaderTemplate
— Начинающийся элемент пейджера. (Как в Repeater'е)FooterTemplate
— Завершающий элемент пейджера. (Как в Repeater'е)PageNumber
— Номер обрабатываемой страницыPageButton
— JavaScript код выполняющий POST. Устанавливается в событие onclick.PageHyperLink
— JavaScript код выполняющий POST. Устанавливается в атрибут href.
<user:Pager ID="ucPager" OnPageNumberChanged="ucPager_PageNumberChanged" FindInGet="true" EnableJSNavigation="true" runat="server">
<Templates>
<HiddenPagesTemplate>… </HiddenPagesTemplate>
<ActivePageTemplate><%# Container.PageNumber %> </ActivePageTemplate>
<PageTemplate><a href="<%# Container.PageHyperLink %>"><%# Container.PageNumber %></a></PageTemplate>
<SeparatorTemplate> | </SeparatorTemplate>
<FooterTemplate><br /></FooterTemplate>
</Templates>
</user:Pager>
OnPageNumberChanged
— Событие вызываемое при смене страницыDataBindAfterRowsCount
— Вызывать метод DataBind после установки кол-ва рядов в данных. По умолчанию выключено.EnableJSNavigation
— Разрешить использование навигации через shortcut'ы. Для смены страниц используются сочетания клавиш Ctrl + → и Ctrl + ←. В браузере Opera сочетания клавиш Ctrl/Alt + ←/→ зарезервированы под навигацию по истории. Так что используются клавиши ← → без Ctrl. По умолчанию навигация включена.FindInGet
— Поиск текущей страницы в GET запросе. Ищется по ключу Page. К примеру http://localhost/Default.aspx?Page=1
. По умолчанию поиск GET запросе выключен.MaxVisiblePages
— Максимальное кол-во отображаемых страниц в меньшую сторону от текущей страниы и в большую сторону от текущей страниы. По умолчанию, максимальное кол-во страниц 3.PageNumber
— Номер текущей страницы.PageSize
— Количество рядов на одной странице.RowsCount
— Общее количество рядов в данных.В комплекте идёт демо приложение.