【问题标题】:Rerender child of composite component渲染复合组件的子组件
【发布时间】:2011-08-07 23:10:58
【问题描述】:

有没有办法指定复合组件的子组件使用 f:ajax 重新渲染:

<f:ajax render="compositeComponent:childComponent" />

从我简短的实验来看,似乎无法引用它们,但我想知道是否有替代策略来实现这一点。

【问题讨论】:

    标签: ajax jsf jsf-2 render composite-component


    【解决方案1】:

    它应该可以正常工作。它完全是客户端(即 JSF 生成的 JavaScript 代码将其定位在 HTML DOM 树中)。

    您可能引用了错误的客户端 ID。在网络浏览器中打开页面,右键单击并查看源代码,在页面源代码中找到生成的 HTML 元素并确定其id 属性。您在render 属性中指定的那个应该绝对(以: 为前缀)或相对(与父UINamingContainer 组件相比)引用它。

    另一个可能的原因是您将rendered 属性放在了评估false 的同一复合组件的子组件上,这反过来又导致生成的HTML 元素在HTML DOM 树中完全丢失。然后,您希望将 rendered 属性放在该组件的子组件上,如下所示:

    <h:panelGroup id="childComponent">
        <h:outputText value="#{bean.text}" rendered="#{bean.rendered}" />
    </h:panelGroup>
    

    【讨论】:

    • 是的。你说得对。当我创建一个更基本的示例时,它运行良好。
    猜你喜欢
    • 1970-01-01
    • 2018-07-20
    • 2021-12-01
    • 2019-06-20
    • 1970-01-01
    • 2011-09-28
    • 2017-11-18
    • 2016-12-21
    • 1970-01-01
    相关资源
    最近更新 更多