复选框组仅返回最后选择的值
checkboxgroup returning only last selected value
我有一个重复控件并使用 viewScope 数组中的项目填充复选框组。示例代码是:
<xp:repeat id="repeat4" rows="100" value="#{viewScope.choices}"
indexVar="rownumber" var="row" first="0">
<xp:checkBoxGroup id="checkBoxGroup2" layout="lineDirection">
<xp:selectItems>
<xp:this.value><![CDATA[#{javascript:if (viewScope.choices[rownumber].get(1)==viewScope.line){
return viewScope.choices[rownumber].get(0)
}}]]></xp:this.value>
</xp:selectItems>
</xp:checkBoxGroup>
<xe:tooltip id="tooltip1" for="checkBoxGroup2">
<xe:this.label><![CDATA[#{javascript:return viewScope.choices[rownumber].get(1)}]]></xe:this.label>
</xe:tooltip>
</xp:repeat>
我正在读取检查值:@Text(getComponent("checkBoxGroup2").getSubmittedValue());
问题是我似乎只能通过这种方式读取最后选择/取消选择的值。
我想这与未 return 数组的选定项有关,但我如何 return 具有给定数据的数组?
在这种情况下您不能使用 checkBoxGroup
。 repeat 创建的每个 checkBoxGroup 都是一个自己的控件,它们之间没有连接。
改用简单的 checkBox
控件并将所选值写入视图范围变量数组:
<xp:this.beforePageLoad><![CDATA[#{javascript:
if (!viewScope.selected) {
viewScope.selected = new Array(viewScope.choices.length);
}
}]]></xp:this.beforePageLoad>
<xp:repeat
id="repeat4"
rows="100"
value="#{javascript:viewScope.choices}"
indexVar="rownumber"
var="row"
first="0">
<xp:panel
id="panelCheckBox"
style="display: inline-block;">
<xp:checkBox
id="checkBox1"
text="#{row[0]}"
value="#{viewScope.selected[rownumber]}"
checkedValue="#{row[0]}"
uncheckedValue="#{javascript:''}" />
</xp:panel>
<xe:tooltip
id="tooltip1"
for="panelCheckBox"
position="below"
label="#{row[1]}" />
</xp:repeat>
结果在viewScope.selected
然后
我有一个重复控件并使用 viewScope 数组中的项目填充复选框组。示例代码是:
<xp:repeat id="repeat4" rows="100" value="#{viewScope.choices}"
indexVar="rownumber" var="row" first="0">
<xp:checkBoxGroup id="checkBoxGroup2" layout="lineDirection">
<xp:selectItems>
<xp:this.value><![CDATA[#{javascript:if (viewScope.choices[rownumber].get(1)==viewScope.line){
return viewScope.choices[rownumber].get(0)
}}]]></xp:this.value>
</xp:selectItems>
</xp:checkBoxGroup>
<xe:tooltip id="tooltip1" for="checkBoxGroup2">
<xe:this.label><![CDATA[#{javascript:return viewScope.choices[rownumber].get(1)}]]></xe:this.label>
</xe:tooltip>
</xp:repeat>
我正在读取检查值:@Text(getComponent("checkBoxGroup2").getSubmittedValue());
问题是我似乎只能通过这种方式读取最后选择/取消选择的值。
我想这与未 return 数组的选定项有关,但我如何 return 具有给定数据的数组?
在这种情况下您不能使用 checkBoxGroup
。 repeat 创建的每个 checkBoxGroup 都是一个自己的控件,它们之间没有连接。
改用简单的 checkBox
控件并将所选值写入视图范围变量数组:
<xp:this.beforePageLoad><![CDATA[#{javascript:
if (!viewScope.selected) {
viewScope.selected = new Array(viewScope.choices.length);
}
}]]></xp:this.beforePageLoad>
<xp:repeat
id="repeat4"
rows="100"
value="#{javascript:viewScope.choices}"
indexVar="rownumber"
var="row"
first="0">
<xp:panel
id="panelCheckBox"
style="display: inline-block;">
<xp:checkBox
id="checkBox1"
text="#{row[0]}"
value="#{viewScope.selected[rownumber]}"
checkedValue="#{row[0]}"
uncheckedValue="#{javascript:''}" />
</xp:panel>
<xe:tooltip
id="tooltip1"
for="panelCheckBox"
position="below"
label="#{row[1]}" />
</xp:repeat>
结果在viewScope.selected
然后