私は何か新しいことを試みています。私はjsonオブジェクトを持つarraylistにカスタムコントロールのプロパティ定義を渡したいと思います。私はcolsと呼ばれ、オブジェクト型のプロパティです。今jsonオブジェクトを持つarraylistに反復制御でアクセスする方法
<xc:this.cols><![CDATA[#{javascript:var cols = [];
cols.push({
"colName" : "Petter",
"colValue" : "Developer"
});
cols.push({
"colName" : "Jesper",
"colValue" : "Administrator"
});
return cols;}]]></xc:this.cols>
私のリピータで、私はこれらのオブジェクト/値を使用します:以下のように私は今、プロパティの値を計算しているのXPageに
。しかし、私はどのようにわからないのですか?
まず私には、JavaScript例えば、それらにアクセスするために、どれだけ私のリピートコントロールの外に試してみました。:
<xp:text escape="true" id="computedField1">
<xp:this.value><![CDATA[#{javascript:var cols = compositeData.cols;
cols[0]["colValue"]}]]></xp:this.value>
</xp:text>
<xp:text escape="true" id="computedField3">
<xp:this.value><![CDATA[#{javascript:var cols = compositeData.cols;
cols[1]["colValue"]}]]></xp:this.value>
</xp:text>
これは私が開発者と管理者が返された値を取得するために動作するようです。
私はリピートコントロールでjsonにアクセスしたいが、私はここで迷う。
<xp:repeat id="repeat1" rows="30" var="colObj" indexVar="idx"
value="#{javascript:compositeData.cols}">
は、その後、私は私のリピート制御中に計算されたテキストコントロールを配置し、類似した何かしようとしています:
<xp:text escape="true" id="computedField2">
<xp:this.value><![CDATA[#{javascript:colObj[idx]["colValue"]}]]></xp:this.value>
</xp:text>
をしかし、私は取得ここ
は、私は私のリピートコントロールを設定している方法ですエラー:
com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(JavaScriptValueBinding.java:132)
誰かが私が間違っていたことと、それを正しく行う方法を説明できますか?これに
<xp:text escape="true" id="computedField2">
<xp:this.value><![CDATA[#{javascript:colObj[idx]["colValue"]}]]>
</xp:this.value>
</xp:text>
:
hello Rob。実際にインデックスが私に提供されています。ありがとうございました! – Malin