在重复(var = row,indexVar = rownumber)中,我无法使defaultselected工作。返回值变为正确" true"但是没有用。
根据viewScope选择器中的值,预先选择来自此无线电组的1个无线电("选择")。
<xp:radio id="radio1" value="#{viewScope.test}" groupName="selection">
<xp:this.text><![CDATA[#{javascript:row[3]}]]>
</xp:this.text>
<xp:this.defaultSelected><![CDATA[#{javascript:var check = "no";
try{
for (i=0;i<25;i++){
if( @IsMember(row[4],viewScope.selectie[0][i])==1){var
check="true";break}//only 1 can be checked
}//end for i
if (check=="true"){return true}
else {return false}
}//end try
catch (e){
sessionScope.error = "error radio1 :"+e.toString();}}]]>
</xp:this.defaultSelected>
<xp:eventHandler event="onchange" submit="true" refreshMode="partial"
refreshId="resultPanel">
<xp:this.action><![CDATA[#{javascript:var item
=viewScope.lijnknr.intValue();
viewScope.selectie[0].set(item,row[4]);}]]>
</xp:this.action>
</xp:eventHandler>
</xp:radio>
修改
我添加了以下行:<xp:this.selectedValue><![CDATA[#{javascript:row[4]}]]></xp:this.selectedValue>
因为我读了以下帖子:Xpages radio btn group checked
但它仍然无法运作.....
第二次编辑 添加了另一个属性:skipContainers =&#34; 1&#34;在&#34;掌握Xpages&#34;,
中找到但仍然无法工作......
答案 0 :(得分:1)
如果可能,另一种方法是使用radioGroup
组件:
<xp:radioGroup value="#{viewScope.fruit}" defaultValue="orange">
<xp:selectItems value="#{javascript:['apple', 'orange', 'banana']}" />
<xp:eventHandler event="onclick" submit="true"
execMode="partial" refreshMode="partial" refreshId="result" />
</xp:radioGroup>
<xp:div id="result">
<xp:text value="The selected fruit is: #{empty viewScope.fruit ? 'none' : viewScope.fruit}" />
</xp:div>
答案 1 :(得分:0)
重要编辑!
我在下面写的内容表示无线电是逐个声明的 - 因此在重复组件之外。当放置在重复组件内部时,会出现一个错误,阻止无线电组作为一个组件工作。实际上,输出name
参数对于每个循环无线电组件都会有所不同......
我没有在那里看到你的全部代码所以我会举个例子。 考虑以下情况(为了简洁起见,我有时会犯下使用SSJS的罪行):
<xp:repeat value="#{javascript: ['apple', 'orange', 'banana']}"
var="fruit">
<xp:radio groupName="fruits" selectedValue="#{fruit}"
value="#{viewScope.fruit}" defaultSelected="#{fruit eq 'orange'}" text="#{fruit}" />
</xp:repeat>
我将一个动态数组传递给了重复控件,我将每个值引用为fruit
。
此时我填充了无线电组件:
groupName
对收音机进行分组(你知道)selectedValue
分配给当前fruit
。这是选择收音机时将保存的值value
绑定到实际保存所选值的属性(在这种情况下,就像你一样,我去了viewScope
)defaultSelected
值(根据字面值橙色进行评估,但您可以采用不同的方式进行评估)。如果viewScope.fruit
为空橙色将是默认值。text
- 标签 - 再次分配给当前的fruit
变量同样,如果变量viewScope.fruit
为空,这将为您提供橙色选项作为默认选择。据推测,如果你在页面加载期间为viewScope指定了一个值,比如说:
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" beforePageLoad="#{javascript: viewScope.fruit = 'banana'}">
然后所选的收音机不会是橙色,而是香蕉。
关于eventHandler
,我不清楚你在那里尝试实现的目标。如果你想进一步解释,我也可以帮助那里。