2011-09-15 60 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