rich:带有Ajax更新的pickList

时间:2011-09-15 14:53:27

标签: richfaces ajax4jsf seam2

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

3 个答案:

答案 0 :(得分: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等。)

答案 1 :(得分:1)

您是否尝试在ajaxRendered="true"的面板中声明您的pickList?这应该自动reRender pickList

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

答案 2 :(得分:-2)

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