city_1、city_2、city_3 などの一連のフィールドを持つメモ フォームがあります。
XPage があり、その XPage に繰り返しがあります。
繰り返しは、1 ~ 10 の 10 個の値を持つ配列に基づいています
var repArray = new Array() ;
for (var i=1;i<=10;i++) {
repArray.push(i) ;
}
戻ります (repArray) ;
繰り返しの中には、city_1 から city_10 までのフィールドを表示するために使用されるカスタム コントロールがあります。
繰り返しには、渡されるカスタム プロパティ docdatasource があります。また、繰り返しコレクション名を使用して計算される cityFieldName と呼ばれる文字列カスタム プロパティもあるため、最初の繰り返し行では city_1、2 番目では city_2 などになります。
カスタム コントロールの編集可能なテキスト フィールドは、EL 式の compositeData.docdatasource[compositeData.cityFieldName] を使用してバインドされます。
これは問題なく機能しますが、新しいフィールドを追加するたびに、新しいカスタム プロパティを作成し、それを親ページで参照することを覚えておく必要があります。
次のようなデータバインディングを簡単に計算できるようにしたいと思います
compositeData.docdatasource['city_' + indexvar]
ここで、indexvar は現在の行番号を表す変数です。
これは可能ですか?Expression Language では「+」を使用できないと読みました。