【问题标题】:Update sibling component in JSF 2 / Primefaces更新 JSF 2 / Primefaces 中的同级组件
【发布时间】:2013-01-06 15:15:07
【问题描述】:

我的页面上有以下组件树

form
    tabView
        datatable
        dialog

现在我想在数据表中选择一行时更新对话框组件。

我尝试了类似的方法:

<p:ajax event="rowSelect" update="@parent:detailsView" oncomplete="detailsViewDialog.show()" />

其中 detailsView 是 p:dialog 中 panelGroup 的 ID。

只有 update="@parent" 有效,但总是重新加载整个表格只是为了显示对话框不是解决方案。

谁能给我一个提示?

问候, 弗洛里安

【问题讨论】:

    标签: jsf-2 primefaces


    【解决方案1】:

    数据表本身就是一个NamingContainer 组件,因此很难使用相对的客户端ID。您基本上需要指定绝对客户端 ID:

    <p:ajax ... update=":formId:tabViewId:detailsView" />
    

    或者,您还可以通过binding 属性将ID 为detailsViewUIComponent 绑定到视图,并在update 属性中使用UIComponent#getClientId()

    <p:ajax ... update=":#{detailsView.clientId}" />
    ...
    <h:panelGroup id="detailsView" binding="#{detailsView}">
    

    【讨论】:

    • 非常感谢。我去看看。
    • 我是否需要绑定的支持属性?它对我不起作用
    • @Lule:不。那么您遇到的问题与此处提出的问题不同。
    猜你喜欢
    • 1970-01-01
    • 2012-07-26
    • 2016-09-27
    • 2012-12-04
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多