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
pager
s 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" />