Stránkovač v katalogu (ceníku)
je řešen v INSHOP4 pomocí šablony Pager.ascx. Její zvláštností je, že se nevolá přes tag includetemplate, ale pomocí <shop:Pager runat="server" />. Všechny tagy uvedené v šabloně Pager.ascx musí být výhradně uvedené v této šabloně, jinak není zaručeno jejich správné vykonávání na serveru (naplnění níže uvedených tagů se provádí zpracováním shop:Pager na serveru). Výjimku tvoří pouze GetPageSize popsán níže, který nemusí být v této šabloně uveden.
Tagy používané pro stránkování
Seznam tagů upravující stránkovač v katalogu a ceníku. V současné chvíli otestováno pouze pro kolekci shop:ProductList. Pokud někdo otestuje i v ostatních kolekcích, budu rád za reakce a připomínky.
•
shop:GetPageSize - vrací nastavený počet výrobků na stránce (jako jediný nemusí být vložen v šabloně Pager.ascx, ale pro přehlednost určitě doporučuji)
•
shop:PageIndexer – seznam tag čísel (
článek o PageIndexer)
•
shop:GetPageCount – počet stránek
•
shop:GetLastItemOnPage – index poslední polozky na strance
•
shop:GetFirstItemOnPage - index první položky na stránce
•
shop:GetPageIndex – index stránky aktuální
•
shop:GetItemsCount – celkový počet položek v kolekci (funguje i v ostatních kolekcích jako LevelList atd.)
Použití v kolekci
V současné chvíli testováno pouze pro kolekci ProductList. Jedinou nevýhodou v ojedinělých případech může být použití jedné šablony jak pro header kolekce, tak i pro footer (styl a zobrazení v horní a dolní části výpisu výrobků).
<shop:ProductList config="catalogue" runat="server">
<TagHeader>
<shop:Pager runat="server" />
</TagHeader>
<TagBody>
<<shop:IncludeTemplate TemplatePath="BasicCatalogue" runat="server" />
</TagBody>
<TagFooter>
<shop:Pager runat="server" />
</TagFooter>
</shop:ProductList>
Použití shop:GetPageSize
Příklad využití ve výběru, kterému vkládáme i test na ověření vybraného počtu.
<form action="scripts/shop.aspx">
<input type="hidden" name="action" value="dochangelevel">
<label>Zobrazit:</label>
<select name="pagesize" onchange="form.submit();">
<shop:Test Parameter1="shop:GetPageSize" Parameter2="12"
runat="server">
<SuccessTemplate>
<option value="12" selected="selected">12</option>
</SuccessTemplate>
<AlternativeTemplate>
<option value="12">12</option>
</AlternativeTemplate>
</shop:Test>
<shop:Test Parameter1="shop:GetPageSize" Parameter2="24"
runat="server">
<SuccessTemplate>
<option value="24" selected="selected">24</option>
</SuccessTemplate>
<AlternativeTemplate>
<option value="24">24</option>
</AlternativeTemplate>
</shop:Test>
</select> výrobků na stránce
</form>
Použití tagů v šabloně Pager.ascx
Jedno z možných využití tagů pro zobrazení stránkovače v kolekci shop:ProductList, které se vloží uvnitř kolekce pomocí <shop:Pager runat="server" />
Po provedení šablony se vám zobrazí v prohlížeči něco takového:
(1 - 12 záznamů / 19 Celkem) < 1 2 >
V šabloně Pager.ascx je uvedeno:
(
<shop:GetFirstItemOnPage runat=server /> -
<shop:GetLastItemOnPage runat=server />
<shop:GetText TextID="Pager_Records" runat=server /> /
<shop:GetItemsCount runat=server/>
<shop:GetText TextID="Pager_Total" runat=server />
)
<shop:includelinkedimage id="Previous" imageidentifier="btn_PreviousPage"
altimageidentifier="btn_AltPreviousPage" text="<" runat="server"/>
<shop:pageindexer runat="server"/>
<shop:includelinkedimage id="Next" imageidentifier="btn_NextPage"
altimageidentifier="btn_AltNextPage" text=">" runat="server"/>
Související články
PageIndexer