<je:pager>

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><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ými templates.

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

Připomínky a postřehy

Máte-li nějakou připomínku, dobrý nápad nebo jste našli v dokumentaci chybu, rádi od vás uslyšíme.