<f:select>

Control slouží k vygenerování pole typu <select>. Vnořené tagy <option> lze zapsat přímo do .aspx, nebo je vložit z textového souboru, nebo z kolekce.

<f:select runat="server"
          id="someId"
          sourceCollection="someCollection"
          sourceField="someField" />

Control musí přijít do template formTemplate controlů <f:collectionForm> nebo <f:emailForm>.

Atributy

  • class nepovinný [string, interpolace]

    Hodnota atributu bude beze změny přenesena do výstupního kódu do atributu class.

  • errText nepovinný [cesta k uzlu textového souboru]

    Cesta k uzlu textového souboru, který obsahuje chybové hlášení pro případ, že data formulářového prvku neprojdou validací na straně serveru. Chybové hlášení se vypíše pomocí controlu <f:errMsgs>. Více o validaci viz Koncepty/Formuláře. Nelze kombinovat s atributem errTextValue.

  • errTextValue nepovinný [string]

    Text chybového hlášení pro případ, že data formulářového prvku neprojdou validací na straně serveru. Chybové hlášení se vypíše pomocí controlu <f:errMsgs>. Více o validaci viz Koncepty/Formuláře. Nelze kombinovat s atributem errText.

  • id povinný [string]

    Jedinečné jméno controlu. Pod tímto jménem je obsah controlu dostupný v šabloně emailu. Zároveň je toto jméno použito jako jméno prvku ve formuláři, tj. je zapsáno do atributu name příslušného HTML elementu.

  • sourceCollection nepovinný [jméno kolekce]

    Jméno kolekce, jejíž prvky se použijí pro vygenerování vnořených tagů <option>.

  • sourceField nepovinný [jméno pole prvku kolekce]

    Určuje, které pole prvku kolekce určené atributem sourceCollection, se použije pro vygenerování vnořených tagů <option>. Není-li atribut uveden, použije se první textové pole.

  • sourceText nepovinný [cesta k uzlu textového souboru]

    Cesta k uzlu textového souboru k prvku, jehož elementy se použijí jako položky controlu. Příklad je uveden níže.

  • style nepovinný [string, interpolace]

    Hodnota atributu bude beze změny přenesena do výstupního kódu do atributu style.

  • targetField nepovinný [jméno pole]

    Jméno pole prvku cílové kolekce, do kterého se uloží data formulářového prvku. (Cílová kolekce je určena atributem targetCollection controlů <f:emailForm> nebo <f:collectionForm>).

  • title nepovinný [string, interpolace]

    Hodnota atributu bude beze změny přenesena do výstupního kódu do atributu title.

  • validateAs nepovinný [předdefinované hodnoty]

    Způsob validace dat formulářového prvku. Více o validaci viz Koncepty/Formuláře.

  • validateData nepovinný [regulární výraz]

    Regulární výraz, podle kterého se validaují data formulářového prvku, je-li atribut validateAs nastaven na hodnotu RegExp. Více o validaci viz Koncepty/Formuláře.

Lze také použít atributy HTML pro události myši a klávesnice (onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup). Jejich obsah je přímo přepsán do výstupu.

Příklady

Přímý výčet položek v kódu stránky

Pro výčet položek přímo ve stránce se používá control <asp:listitem>. Control je v namespace asp, protože se jedná o standardní control .NET, nikoliv o control systému JellyPot. Z tohoto důvodu se u něj neuvádí ani atribut runat="server". Select pro výběr hodnocení článku by vypadal takto:

<f:select runat="server" id="rating">
    <asp:listitem>super</asp:listitem>
    <asp:listitem>normál</asp:listitem>
    <asp:listitem>hrůza</asp:listitem>
</f:select>

Načtení položek z textového souboru

Položky formulářového prvku select lze načíst také z textového souboru. Výhodou oproti přímému výčtu je, že kód stránky může být jazykově nezávislý (viz Jazyky).

<f:select runat="server"
          id="rating"
          sourceText="Articles/Rating" />

textovém souboru potom uvedeme např.:

<?xml version="1.0" encoding="utf-8" ?>
<Texts xmlns="urn:Bet:ns:CmsTxt">
    ...
    <Articles>
        <Rating>
            <Item>super</Item>
            <Item>normál</Item>
            <Item>hrůza</Item>
        </Rating>
        ...
    </Articles>
    ...
</Texts>

Elementy obsažené v uzlu, na který odkazuje atribut sourceText, budou použity pro vypsání vnořených HTML elementů <option>. Na pojmenování elementů v textovém souboru nijak nezáleží, v příkladu jsme použili Item.

Načtení položek z kolekce

Položky formulářového prvku select lze načíst také z kolekce deklarované v Site.config. Stejně jako při načítání z textového souboru je oproti přímému výčtu výhodou, že kód stránky může být jazykově nezávislý (viz Jazyky). Takto lze navíc položky prvku select snadno měnit editací v administraci.

<f:select runat="server"
          id="rating"
          sourceCollection="articleRatingCol"
          sourceField="title" />

Site.config tedy musíme mít deklarovanou kolekci articleRatingCol:

...
<Vars>
    ...
    <Collection name="articleRatingCol" itemType="ArticleRatingItem" />
    ...
</Vars>
...
<Types>
    ...
    <Type name="ArticleRatingItem">
        <SimpleText name="title" />
        <Text name="desc" />
        <Text name="text" />
    </Type>
    ...
</Types>
...

Pokud kolekce articleRatingCol obsahuje tři prvky a hodnota jejich pole title je „super“, „normál“ a „hrůza“, dostaneme stejný výsledný kód jako v příkladu s textovým souborem.

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.