通过SSJS获取xpages中的单选按钮组中的选择值

时间:2017-01-24 13:18:25

标签: radio-button xpages selectedvalue

我在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>

2 个答案:

答案 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中填充基于组合框的作用域变量。