Ve výchozím nastavení se prvky kolekcí v administraci zobrazují pomocí prvního pole s textovým obsahem (či pomocí id proměnné, pokud proměnná obsahuje např. jen obrázková pole). Způsob zobrazování lze upravit, a to přímo v elementu Collection definujícím kolekci.
Definice zobrazení je vázana na definici kolekce, nikoliv na definici typu jejího prvku, což např. umožňuje prvky kolekce zobrazit jinak při editaci samotné kolekce a jinak, pokud je kolekce odkazována pomocí <Reference>.
Kolekce lze zobrazit buď textově (výchozí způsob) nebo obrázkově, obsahují-li její prvky obrázky.
Stejným způsobem lze upravit zobrazení prvků kolekce v polích typu <Reference> a <ReferenceCollection>, zde je možná však pouze textová podoba.
Textové zobrazení
K definici způsobu textového zobrazení kolekce slouží atribut itemFormat:
<Collection name="someCol"
itemType="someItem"
itemFormat="{someField}|someText: {anotherField}|etc..." />
Obsahem atributu itemFormat je řetězec, který určuje, jakým způsobem jsou prvky zobrazeny. Umožňuje interpolaci proměnných. Ta má trochu odlišnou syntaxi od interpolace proměnných v atributech controlů, princip je ale stejný. Atribut může obsahovat:
- someText – libovolný statický text, nesmí obsahovat znaky
{,}a| - {someField} – jméno pole datového typu ve složených závorkách. Při zobrazení v administraci je nahrazeno hodnotou v poli uloženou. Zadává se bez tečky na počátku.
- {someField:format} – jméno pole je možné doplnit uživatelsky definovaným formátem. Často se používá např. u data
{someDateField:dayMonth}. Na rozdíl od výpisu v .aspx zde nelze použít formátovací řetězce ASP.NET - | – oddělovač sloupců, při jeho použití se kolekce zobrazí „jako tabulka“
Příklad
Máme kolekci produktů. Ke každému ukládáme jeho název, variantu a od kdy je k dispozici. V Site.config k tomu máme deklarovaný tento typ a kolekci:
<Type name="ProductItem">
<SimpleText name="title" />
<SimpleText name="option" />
<Date name="availabilityDate" />
</Type>
...
<Collection name="productCol"
itemType="ProductItem" />
V kolekci máme uloženy tyto prvky:
| title | option | availabilityDate |
|---|---|---|
| Hrnek | s uchem | 1/11/2015 |
| Nerozbitná sklenice | bez potisku, průhledná | 5/11/2015 |
| Tužka | modrá | 7/11/2015 |
Výchozí zobrazení kolekce v administraci bude tedy vypadat takto:
Hrnek Nerozbitná sklenice Tužka
Pokud použijeme atribut itemFormat s tímto obsahem:
<Collection name="product"
itemType="ProductItem"
itemFormat="{title} ({option}),
dostupné od {availabilityDate:dayMonth}" />
položky se zobrazí jako:
Hrnek (s uchem), dostupné od 1. 11. Nerozbitná sklenice (bez potisku, průhledná), dostupné od 5. 11. Tužka (modrá), dostupné od 7. 11.
* Předpokládáme, že máme uživatelský formát dayMonth definovaný jako format="d. M."
Pokud bychom chtěli uvést jméno v prvním sloupci a variantu ve druhém, pak použijeme znak |:
<Collection name="product"
itemType="ProductItem"
itemFormat="{title}|{option}" />
V administraci se nám ukáže:
Hrnek s uchem Nerozbitná sklenice bez potisku, průhledná Tužka modrá
Formát položek v polích typu <Reference> a <ReferenceCollection>
Podobně jako v kolekcích samotných lze upravit formát zobrazení jednotlivých prvků v polích typu <Reference> a <ReferenceCollection>. Pravidla formátování jsou stejná jako je uvedeno výše, prvky pouze nelze řadit do tabulek. Formát jednotlivých prvků může vypadat např. takto:
<Reference name="someColRef"
sourceCol="someCol"
itemFormat="{someTitleField} ({someOptionField})" />
V referenčních polích nelze používat obrázkové zobrazení.
Obrázkové zobrazení
Obsahují-li prvky kolekce obrázek, lze kolekci zobrazit jako obrázkovou galerii.
Pro tento způsob zobrazení je potřeba k příslušnému elementu Collection připojit atribut itemFormatType="img" a v atributu itemFormat uvést upřesňující nastavení:
<Collection name="someCol"
itemFormatType="img"
itemFormat="{someImgField}|
some text and/or {someField}|
some text and/or {anotherField}" />
Pro atribut itemFormat platí obdobná pravidla jako u textového zobrazení.
Pomocí znaku | v něm mohou být uvedeny až tři části. V prvním musí být ve složených závorkách uvedeno jméno obrázkového pole. Druhá část se použije pro popisek pod obrázkem a třetí pro obsah HTML atributu title. Ten se objevuje jako tooltip při umístění kurzoru myši na obrázek.
Příklad
Máme kolekci fotografií. Ke každé fotografii zaznamenáváme jméno fotografie, jejího autora a jeho emailovou adresu. V Site.config k tomu máme deklarovaný tento typ:
<Type name="PhotoItem">
<SimpleText name="title" />
<Img name="img">
<Size name="original" />
<Size name="fullHD"
width="1920"
height="1080" />
<Size name="thumb"
width="320"
height="200" />
</Img>
<SimpleText name="author" />
<SimpleText name="authorEmail" />
</Type>
Kolekci chceme v administraci zobrazit jako galerii obrázků s viditelným jménem autora. Autorův email zobrazíme v tooltipu. Formát prvku v deklaraci kolekce tedy zapíšeme takto:
<Collection name="photoCol"
itemType="PhotoItem"
itemFormatType="img"
itemFormat="{img}|{author}|email: {authorEmail}" />