在RadioGroup中添加动态项

时间:2015-01-06 16:50:47

标签: xpages lotus-notes lotus-domino lotus xpages-ssjs

添加了组件:

<xp:radioGroup id="radioGroup1" layout="lineDirection">
    <xp:selectItem itemLabel="1" itemValue="1"></xp:selectItem>
    <xp:selectItem itemLabel="2" itemValue="2"></xp:selectItem>
    <xp:selectItem itemLabel="3" itemValue="3"></xp:selectItem>
</xp:radioGroup>

如何通过按下按钮添加新的selectItem?对于ssjs?

2 个答案:

答案 0 :(得分:2)

selectItems添加radioGroup属性,该属性从viewScope中读取其他选项。在view按钮中设置viewScope,并添加带有标签和值的Java对象SelectItem的新选项:

<xp:radioGroup id="radioGroup1" layout="lineDirection">
    <xp:selectItem itemLabel="1" itemValue="1"></xp:selectItem>
    <xp:selectItem itemLabel="2" itemValue="2"></xp:selectItem>
    <xp:selectItem itemLabel="3" itemValue="3"></xp:selectItem>
    <xp:selectItems>
        <xp:this.value><![CDATA[#{javascript:viewScope.selectItems}]]></xp:this.value>
    </xp:selectItems>
</xp:radioGroup>
<xp:button
    value="Add option"
    id="button1">
<xp:eventHandler
    event="onclick"
    submit="true"
    refreshMode="complete">
    <xp:this.action><![CDATA[#{javascript:
        if (!viewScope.selectItems) {
            viewScope.selectItems = [];
        }
        viewScope.selectItems.add(new javax.faces.model.SelectItem("Value1", "Label1"));
    }]]></xp:this.action>
</xp:eventHandler></xp:button>

答案 1 :(得分:0)

尝试Knut对Xpages add values into Combo Box的回答。组合框和无线电组都使用相同的底层组件作为选项。

如果您尝试从按钮动态地将xp:selectItem元素添加到radioGroup组件,则该选项仅可用于该部分刷新。刷新一个区域再次包含radioGroup,它将恢复为您的设计中专门编码的选项。如果您使用的是viewScope变量,则会保留页面生命周期的选项。