2

我有一个 RichFaces pickList,用户应该能够从中选择多个项目,并且它应该直接反映在支持 bean 上。现在,如果出现验证错误或重新加载页面,我无法重新加载选择。有没有一种简单的方法告诉 RichFaces 我希望在每次更改时更新支持列表?

4

3 回答 3

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,等等)。

于 2011-09-19T19:53:02.457 回答
1

您是否尝试在面板中声明您的选择列表ajaxRendered="true"?这应该会自动重新渲染pickList

<a4j:outputPanel ajaxRendered="true">
  <rich:pickList...
</a4j:outputPanel>
于 2011-09-16T09:38:58.347 回答
-2

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

于 2013-11-29T07:55:00.863 回答