2008年12月5日金曜日

ZK: forEach属性のeach変数の値へコンポーネント生成後にアクセス

コンポーネントのeach属性はforEach属性で配列を使用してコンポーネントを表示するときに使われる一時変数なので、あとからonXXXイベント等でこの値にアクセスしたい場合はコンポーネントを表示すると同時にcustom-attributesを使用しeachの値を保存して置く。

<window width="100%">
<zscript>
// コンポーネントのforEach属性を利用して生成するボタンの国名ラベルの配列
String[] countries = {"China", "France", "Germany", "United Kindom", "United States", "Japan"};
</zscript>
<hbox>
<button label="${each}" forEach="${countries}">
<!-- eachの値をcustom-attributesのcountryに保存する -->
<custom-attributes country="${each}"/>
<attribute name="onClick">
{
//countryにアクセスする。
alert(componentScope.get("country"));
}
</attribute>
</button>
</hbox>
</window>

0 件のコメント: