rich:pickList 带有 Ajax 更新

发布于 2024-12-04 12:29:10 字数 136 浏览 0 评论 0原文

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

I have a RichFaces pickList from which the user should be able to select multiple items and it should be directly reflected on the backing bean. Right now I have no way to reload selection in case of a validation error or in case the page is reloaded. Is there a simple way to tell RichFaces that I want the backing list to be updated on every change?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦回旧景 2024-12-11 12:29:10

您可以附加到 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 在列表更改时执行服务器端逻辑, 重新渲染等)。

You can attach to onlistchange event.

Using a4j:support:

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

Or, in newer versions, using a4j:ajax:

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

Or using a4j:jsFunction:

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

Both approaches in the form above will submit the form causing submitting selected values. You can also specify additional attributes for a4j:support/a4j:jsFunction if needed (for example ajaxSingle="true" for a4j:support to process only pickList component (other inputs will not be validated/updated), action/actionListener to execute server side logic when list is changed, reRender, etc.).

榆西 2024-12-11 12:29:10

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

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

Have you try to declare your pickList in a panel with ajaxRendered="true" ? This should automatically reRender the pickList

<a4j:outputPanel ajaxRendered="true">
  <rich:pickList...
</a4j:outputPanel>
意中人 2024-12-11 12:29:10

;

;
>

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文