我在xpages应用程序中有以下要求:
我有一个带有两个选项的单选按钮组。我有一个组合框,其值将根据单选按钮组中选择的选项计算。这些选项将根据与单选按钮的 onChange 事件关联的组合框的部分刷新进行计算。
我的问题是我无法在单选按钮上选择的值来安装组合框选项。当我通过 SSJS 进行组装时,我必须在 SSJS 中获取在单选按钮上选择的值。xpages 上是否有任何组件/方法可以从中获取所选值?
我知道通过RPC组件或jquery coould通过CSJS获得选定的值,但我只想使用SSJS。
感激
克努特
我根据您的建议,根据下面的代码做了一个例子,但它不起作用。因为?
<?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>
使用
getComponent('radioGroup1').getValue()
将"radioGroup1"替换为单选按钮组的 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>
在此示例中,您可以使用viewScope.radio
而不是getComponent('radioGroup1').getValue()
因为无线电的值存储在视图范围变量中。
我已经通过在组合框的计算值中使用getComponent("RadioButtonGroup1").getValue()来做类似的操作。或者你可以使用这个:
this.getParent().getValue()
以填充组合框所基于的作用域变量。