2014-03-05 54 views
0

我有一個readmode中的文檔,我需要一個多選字段(可編輯)。所以,我創建了一個這樣的閱讀原生多選字段ssjs

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"> 

    <select multiple="multiple" name="myField" id="myField" size="3"> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
    </select> 

    <xp:button value="Test" id="button1"> 
     <xp:eventHandler event="onclick" submit="true" 
      refreshMode="complete"> 
      <xp:this.action><![CDATA[#{javascript:print(param.get("myField"));}]]></xp:this.action> 
     </xp:eventHandler> 
    </xp:button> 

</xp:view> 

當我按下按鈕我只拿到了一個值回來時,我只選擇一個條目,如果我選擇一個以上的,我僅獲得空回來。有沒有一種方法可以從原生html字段獲取多個值?

回答

4

使用XPages中多選,但它綁定到一個視圖Scope變量。然後您可以輕鬆訪問該值。

<xp:checkBoxGroup id="checkBoxGroup1" 
    value="#{viewScope.someOptions}"> 
    <xp:selectItem itemLabel="One" itemValue="1"></xp:selectItem> 
    <xp:selectItem itemLabel="Two" itemValue="2"></xp:selectItem> 
    <xp:selectItem itemLabel="Three" itemValue="3"></xp:selectItem> 
</xp:checkBoxGroup> 

這應該爲你做的伎倆。然後YOu只需訪問viewScope.someOptions即可獲得一組數值。讓我們知道它是怎麼回事

+0

當然..多數民衆贊成比我的解決方案好多..謝謝 – Pudelduscher

2

所選值包含在HTTP請求的POST數據中。您可以通過RequestParameterMapExternalContext訪問該值。

這裏是一個EL語句,將這樣的伎倆:

<xp:label id="label1" value="#{facesContext.externalContext.requestParameterMap.myField}" /> 
+0

這也適用於魅力..謝謝 – Pudelduscher