Control slouží k výpisu textu do stránky v závislosti na počtu prvků dané kolekce. Control je určen pro správnou tvorbu množného čísla v češtině, nikoliv pro změnu layoutu stránky – k tomu se sice dá použít také, mnohem lepší je ale podobné věci řešit pomocí CSS.
<je:count runat="server" collection="someCollection">
<count1>Jedna položka</count1>
<count2>Dvě nebo tři nebo čtyři položky</count2>
<count5>Pět a více položek</count5>
</je:count>
Atributy
collection povinný [jméno kolekce]
Určuje kolekci, jejíž počet položek rozhoduje o volbě šablony.
container nepovinný [ID containeru]
V případě potřeby lze určit ID containeru, který určuje kontejnerovou proměnnou tohoto controlu (více viz Kontejnerování).
Templates
- count0, count1, ..., count5 – šablony odpovídající jednotlivým počtům prvků kolekce. Šablony není potřeba v controlu definovat všechny. Šablona, která se použije, je vybrána takto (konkrétní příklad je níže):
Počet položek v kolekci | Která šablona se použije |
---|---|
0 | count0 |
1 | count1 |
2 | count2 (→ count5 → count1) |
3 | count3 (→ count2 → count5 → count1) |
4 | count4 (→ count2 → count5 → count1) |
5 a více | count5 (→ count2 → count1) |
Pro každý počet se vždy použije první definovaná šablona. Pokud žádná šablona nevyhovuje, control nic nevypíše. Např. pokud kolekce obsahuje dvě položky, JellyPot nejprve zkusí použít šablonu <count2>
. Není-li definována, zkusí <count5>
. Pokud není definována ani ta, zkusí <count1>
a konečně když nenajde ani tu, nevypíše nic.
Třebaže výběr šablony vypadá trošku zmateně, je potřeba mít na mysli, že control slouží hlavně ke správnému výpisu množného čísla v češtině. Proto jsou volby šablon v tomto pořadí.
V případě jazykově závislé kolekce je počet položek kolekce určen počtem položek v aktuálním jazyce.
Příklad
Typické řešení množného čísla v češtině vypadá nějak takto:
<je:count runat="server" collection="someCollection">
<count1>V kolekci je jedna položka</count1>
<count2>V kolekci jsou dvě nebo tři nebo čtyři položky</count2>
<count5>V kolekci je pět nebo více položek</count5>
</je:count>
Další poměrně časté situace:
Chceme odlišit | Použijeme šablony |
---|---|
žádná, jedna nebo více | count0, count1 |
jedna, dvě a více | count1, count2 |