2011-09-15 68 views
2

我有一個RichFaces pickList,用戶應該從中選擇多個項目,並且它應該直接反映在支持bean上。現在,我無法在驗證錯誤或重新加載頁面的情況下重新加載選擇。有沒有一種簡單的方法可以告訴RichFaces我希望在每次更改時更新支持列表?rich:pickList with Ajax更新

回答

2

您可以附加到onlistchange事件。

使用a4j:support

<rich:pickList ...> 
    <a4j:support event="onlistchange"/> 
</rich:pickList> 

或者,在新版本中,使用a4j:ajax

<rich:pickList ...> 
    <a4j:ajax event="change" render="result"/> 
</rich:pickList> 

或者使用a4j:jsFunction

<rich:pickList onlistchange="listChange();"... /> 
<a4j:jsFunction name="listChange" /> 

形式這兩種方法上面會提交形式導致提交選定的值。也可以爲a4j:support/a4j:jsFunction如果需要的話(例如ajaxSingle="true"a4j:support僅處理picklist組件指定其他屬性(其他輸入將不被驗證的/更新),action/actionListener執行服務器側邏輯當列表被改變,reRender等)。

+0

我的錯誤,它是圍繞着讓AJAX更新模具的領料單丟失標籤。但是你的答案是最接近的,恭喜你:D – cdecker

1

您是否嘗試在ajaxRendered="true"的面板中聲明您的pickList?這應該自動reRender選擇列表

<a4j:outputPanel ajaxRendered="true"> 
    <rich:pickList... 
</a4j:outputPanel> 
-2

<h:form> <rich:pickList value="#{pickListBean.result}"> <f:selectItems value="#{capitalsBean.capitalsOptions}"/> <a4j:support event="onlistchanged" reRender="result"/> </rich:pickList> </h:form>

+2

你應該解釋一下,格式化一下。 – Franck