更新JSF 2 / Primefaces中的兄弟组件

时间:2013-01-06 15:15:07

标签: jsf-2 primefaces

我的页面上有以下组件树

form
    tabView
        datatable
        dialog

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

我尝试过类似的事情:

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

其中detailsView是p:对话框中panelGroup的id。

只有update =“@ parent”有效,但它不是一个总是只重新加载整个表来显示对话框的解决方案。

有人可以给我一个提示吗?

此致 弗洛里安

1 个答案:

答案 0 :(得分:4)

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

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

或者,您也可以通过detailsView属性将标识binding的{​​{3}}绑定到视图,并使用UIComponent#getClientId()属性中的update

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