Проекты

asp:Pager

Пейджер для ASP.NET приложений написанный ещё в 2006 году и несколько раз полностью переписанный. В пейджерах других разработчиков меня не устраивало то, что пейджеры не были достаточно гибкими в настройках. К примеру, невозможно полностью переписать HTML код или зависимость от ViewState'а. Или отсутсвие шорткатов для перелистывания страиц.

В своём решении Я постарался решить все эти минусы. Что он умеет:

  1. Возможность написания HTML кода
  2. Поддержка Shortcut'ов (Ctrl + ← | Ctrl + →. [Для браузера Opera только ← | →])
  3. Поддержка нескольких пейджеров на одной странице
  4. Возможность работы в MVC приложениях
  5. Возможность работать как по GET'так и по POST запросам. (POST только для классического ASP.NET'а)
  6. Возможность работать без ViewState'а

В сборке идёт 2 версии пейджера:

  • Pager — Позволяет полностью контролировать процесс вывод
  • PagerLite — Позволяет создать пейджер без указания HTML кода.

Как использовать

Для использования пейджера необходимо написать шаблон, установить максимальное кол-во элементов на странице и обработать событие 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>&hellip;&nbsp;</HiddenPagesTemplate>
		<ActivePageTemplate><%# Container.PageNumber %>&nbsp;</ActivePageTemplate>
		<PageTemplate><a href="<%# Container.PageHyperLink %>"><%# Container.PageNumber %></a></PageTemplate>
		<SeparatorTemplate>&nbsp;|&nbsp;</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 — Общее количество рядов в данных.

В комплекте идёт демо приложение.

Теги:

Скачать

  • Pager_v3.1.4275.37969.zip (3.1.4275.37969)
    24 сентября 2011 г.
    Исправлена проблема с AJAX'ом. Если на странице получаемой GET'ом пейджера нет, а при AJAX запросе он появляется.
  • Pager_v3.1.4205.21852.zip (3.1.4205.21852)
    7 июля 2011 г.
    Доработан функционал и оптимизирован код.
  • Pager_v3.0.4088.29427.zip (3.0.4088.29427)
    12 марта 2011 г.
    3я версия пейджера. Весь компонент полностью переписан.

Дочерние файлы