2015-01-06 175 views
1

增加的分量:添加動態項目

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

如何通過按下按鈕添加一個新的選擇信息?對於ssjs?

回答

0

Try Knut對Xpages add values into Combo Box的回答。組合框和無線電組都使用相同的底層組件。

如果您嘗試從按鈕中動態添加xp:selectItem元素到radioGroup組件,則該選項僅適用於該部分刷新。刷新區域tat再次包含radioGroup,它將恢復爲您設計中特別編碼的選項。如果您使用viewScope變量,您將保留頁面生命週期的選項。

2

selectItems屬性添加到radioGroup,它讀取viewScope中的其他選項。設置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> 
+0

你爲什麼未接受周後,這個答案?它不工作了嗎? –