Ve vybraných atributech některých controlů (např. atributy class
, idForClient
, onclick
atp. controlů <je:item>
, <je:elem>
a dalších) je možné používat tzv. interpolace proměnných, zkráceně jen interpolace (někdy je tento princip nazýván též substituce proměnných, viz anglická Wikipedie).
<je:item runat="server" field=".someField" idForClient="{.someOtherField}" />
Při zpracování stránky je placeholder {.someOtherField}
nahrazen hodnotou pole someOtherField
. Pro název pole uváděného ve složených závorkách se používá stejná syntaxe jako např. pro název pole zapisovaného v controlu <je:item>
do atributu field
. Do pole lze tedy zapsat jak absolutní název pole (např. jelly.now
), či relativní s úvodní tečkou (viz Kontejnerování). V iterpolacích se také často používají vnitřní pole proměnných.
V jednom atributu lze uvést více polí a lze je kombinovat se statickým textem:
<je:item runat="server" field=".someField" idForClient="somePrefix-{.sid}-{.someOtherField}" />
Je-li potřeba v textu atributu uvést znaky {
a }
, escapují se pomocí zpětného lomítka, tedy \{
, resp. \}
<je:item runat="server" field=".someField" idForClient="\{something-in-curly-braces-no-interpolation\}" />
Interpolace se hodí tehdy, když je potřeba do atributu generovaného elementu dostat hodnotu některého pole proměnné. Často se používá pro získání jedinečných atributů id
při výpisu prvků kolekce pomocí <je:repeater>
:
<je:repeater runat="server" source="someCollection"> <item> <je:item runat="server" field=".someField" idForClient="{.sid}" /> </item> </je:repeater>
Interpolace a formátování
Hodnotu uvedenou v iterpolaci lze podrobit i formátování (podrobnosti viz Formátování výstupu). Formátovací řetězec nebo název formátu se zapíší po dvoutečce za název pole.
<je:item runat="server" field=".someDateField" idForClient="{.someDateField:yyyyMMdd}" />
Pokud je formátovací řetezec složitější, zejména pokud by měl obsahovat složené závorky, pak je přehlednější vytvořit pojmenovaný formát (zapsat jej od elementu Formats) a v interpolaci použít jen název formátu.