Control slouží k omezení počtu výpsaných položek <je:repeater> na stránku a vytvoření stránkování mezi nimi.
<je:pager runat="server" forRepeater="someRepeater" itemsCount="20">
<item>
<je:pagerLink runat="server" type="item">
<je:pagerItem runat="server" />
</je:pagerLink>
</item>
<itemSelected>
<je:pagerItem runat="server" />
</itemSelected>
<separator> | </separator>
</je:pager>
V jednotlivých templates controlu se používají controly <je:pagerItem> a <je:pagerLink>.
Atributy
forRepeater povinný [ID repeateru]
ID repeateru, jehož výpis má být stránkován. Je tedy nutné mít u příslušného repeateru uveden atribut id.
itemsCount nepovinný [10, integer]
Počet prvků, které se mají zobrazit na jedné stránce. Výchozí hodnota je 10.
template nepovinný [cesta k uživatelskému controlu]
Definice jednotlivých templates může být uvedena v uživatelském controlu. Výhodou takového řešení je, že lze stejnou definici stránkování použít na více místech na webu. Soubor s uživatelským controlem musí obsahovat pouze jeden
pagers definovanýmitemplates.
Templates
Všechny templates jsou volitelné. Pro renderování stránky jsou použity pouze uživatelem definované, nedefinované jsou považovány za prázdné.
- prev – šablona pro odkaz na přecházející a/nebo první stránku.
- prevDisabled – šablona pro odkaz na předcházející a/nebo první stránku, kdy předchozí stránka neexistuje (je aktuálně zobrazena první strana).
- next – šablona pro odkaz na následující a/nebo poslední stránku.
- nextDisabled – šablona pro odkaz na následující a/nebo poslední stránku, kdy následující stránka neexistuje (je aktuálně zobrazena poslední stránka).
- item – šablona pro odkaz na konkrétní stránku.
- itemSelected – šablona pro odkaz na aktuální stránku.
- separator – šablona pro oddělovač mezi jednotlivými prvky navigace.
- empty – šablona pro případ, kdy patřičný <je:repeater> vypsal všechny položky kolekce a není tudíž stránkování potřeba.
Příklad
Definice pageru ve stránce
Mějme kolekci blogPost, kterou na stránce vypisujeme následovně:
<je:repeater runat="server" source="blogPost" id="blogPostsRepeater">
<item>
<div class="item">
<je:rplink runat="server" href="article.aspx">
<je:item runat="server" field=".title" />
</je:rplink>
<je:item runat="server" field=".perex" />
</div>
</item>
</je:repeater>
Nyní bychom chtěli výpis článků stránkovat po deseti prvcích. Tam, kde chceme zobrazit stránkování (kdekoliv na stránce), přidáme následující kód:
<je:pager runat="server" forRepeater="blogPostsRepeater" itemsCount="10">
<prev>
<je:pagerLink runat="server" type="first">první</je:pagerLink>
<je:pagerLink runat="server" type="prev">předchozí</je:pagerLink>
</prev>
<prevDisabled>
<span class="deactivated">první</span>
<span class="deactivated">předchozí</span>
</prevDisabled>
<item>
<je:pagerLink runat="server" type="item">
<je:pagerItem runat="server" />
</je:pagerLink>
</item>
<itemSelected>
<je:pagerItem runat="server" class="current" />
</itemSelected>
<separator> | </separator>
<next>
<je:pagerLink runat="server" type="next">další</je:pagerLink>
<je:pagerLink runat="server" type="last">poslední</je:pagerLink>
</next>
<nextDisabled>
<span class="deactivated">další</span>
<span class="deactivated">poslední</span>
</nextDisabled>
<empty>Všechny položky byly vypsány.</empty>
</je:pager>
Definice pageru v uživatelském controlu
Definici pageru lze uvést i v uživatelském controlu. Pak bychom do souboru /controls/pager.ascx dali celý kód pageru uvedený výše.
Na stránce, kde chceme zobrazit stránkování, pak postačí tento kód:
<je:pager runat="server" forRepeater="blogPostsRepeater" itemsCount="10" template="~/controls/pager.ascx" />
Takto definované stránkování lze použít na více místech na webu, například:
<je:pager runat="server" forRepeater="forumRepeater" itemsCount="5" template="~/controls/pager.ascx" />