如何重新渲染

发布于 2024-11-11 16:37:36 字数 781 浏览 4 评论 0 原文

我尝试重新渲染 。但是,它不会重新渲染。

Ajax 调用:

    <h:selectBooleanCheckbox value="#{handler.property}">
        <f:ajax listener="#{handler.toggleItems}" render="items" />
    </h:selectBooleanCheckbox>

t:selectManyCheckbox

<t:selectManyCheckbox id="items" layout="spread" forceId="true"
        forceIdIndex="false" value="#{handler.selectedItems}"
        required="true">
        ....
</t:selectManyCheckbox>

调用侦听器并设置 的新值,但不会重新渲染。

有什么想法吗?我也尝试了 render="myForm:items"render=":myForm:items" 。其形式相同。

I try to re-render a <t:selectManyCheckbox layout="spread">. However, it does not re-render.

The Ajax call:

    <h:selectBooleanCheckbox value="#{handler.property}">
        <f:ajax listener="#{handler.toggleItems}" render="items" />
    </h:selectBooleanCheckbox>

The t:selectManyCheckbox:

<t:selectManyCheckbox id="items" layout="spread" forceId="true"
        forceIdIndex="false" value="#{handler.selectedItems}"
        required="true">
        ....
</t:selectManyCheckbox>

The listener is called and new values for the <t:selectManyCheckbox> are set, but it does not re-render.

Any ideas why? I tried render="myForm:items" and render=":myForm:items" too. It's in the same form.

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

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

发布评论

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

评论(1

游魂 2024-11-18 16:37:36

您还需要重新渲染展开的 项。我建议重新渲染 所有 项目的公共父级。如果不存在,请将它们放入 中。

例如

<h:panelGroup id="allCheckboxes">
    <t:selectManyCheckbox id="items" layout="spread" ... />
    ...
    <t:checkbox for="items" index="0" />
    ...
    <t:checkbox for="items" index="1" />
    ...
</h:panelGroup>

<f:ajax render="allCheckboxes" />

You need to re-render the spreaded <t:checkbox> items as well. I'd suggest to re-render the common parent of the <t:selectManyCheckbox> and all <t:checkbox> items. If not present, put them in a <h:panelGroup>.

E.g.

<h:panelGroup id="allCheckboxes">
    <t:selectManyCheckbox id="items" layout="spread" ... />
    ...
    <t:checkbox for="items" index="0" />
    ...
    <t:checkbox for="items" index="1" />
    ...
</h:panelGroup>

with

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