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