我在xpages应用程序中有以下要求:
我有一个带有两个选项的单选按钮组。 我有一个组合框,其值将根据单选按钮组中选择的选项计算。选项将根据与单选按钮的onChange事件关联的组合框的部分刷新计算。
我的问题是我无法在单选按钮上选择值来安装组合框选项。当我通过SSJS进行组装时,我必须在SSJS中的单选按钮上选择值。在xpages上是否有任何组件/方法可以从中获取选定的值?
我知道通过RPC组件或jquery可以通过CSJS获取所选值,但我只想使用SSJS。
感恩
的Knut,
根据您的建议,我根据下面的代码做了一个例子,但它没有用。因为?
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:radioGroup id="radioGroup2">
<xp:selectItem itemLabel="a"></xp:selectItem>
<xp:selectItem itemLabel="b"></xp:selectItem>
<xp:selectItem itemLabel="c"></xp:selectItem>
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="partial" refreshId="computedField2" execMode="partial" execId="radioGroup2">
</xp:eventHandler></xp:radioGroup>
<xp:text
escape="true"
id="computedField2"
value="#{javascript:getComponent('radioGroup2').getValue()}">
</xp:text><xp:br></xp:br><xp:br></xp:br>
</xp:view>
答案 0 :(得分:2)
使用
getComponent('radioGroup1').getValue()
替换&#34; radioGroup1&#34;使用您的单选按钮组 ID 。
以下是一个例子:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view
xmlns:xp="http://www.ibm.com/xsp/core">
<xp:radioGroup
id="radioGroup1"
value="#{viewScope.radio}">
<xp:selectItem itemLabel="a" />
<xp:selectItem itemLabel="b" />
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="partial"
refreshId="checkBoxGroup1" execMode="partial" execId="radioGroup1">
</xp:eventHandler>
</xp:radioGroup>
<xp:br></xp:br>
<xp:checkBoxGroup
id="checkBoxGroup1"
value="#{viewScope.check}">
<xp:selectItems>
<xp:this.value><![CDATA[#{javascript:
if (!getComponent('radioGroup1').getValue()) {
return [];
}
if (getComponent('radioGroup1').getValue() == 'a') {
return ['A1', 'A2'];
}
return ['B1', 'B2'];
}]]></xp:this.value>
</xp:selectItems>
</xp:checkBoxGroup>
</xp:view>
在此示例中,您可以使用getComponent('radioGroup1').getValue()
代替viewScope.radio
,因为无线电的值会存储在视图范围变量中。
答案 1 :(得分:0)
我通过在组合框的计算值中使用getComponent(“RadioButtonGroup1”)。getValue()来完成类似的操作。或者您可以使用它:
this.getParent()。的getValue()
在onChange中填充基于组合框的作用域变量。