我的页面上有以下组件树
form
tabView
datatable
dialog
现在我想在数据表中选择一行时更新对话框组件。
我尝试过类似的事情:
<p:ajax event="rowSelect" update="@parent:detailsView" oncomplete="detailsViewDialog.show()" />
其中detailsView是p:对话框中panelGroup的id。
只有update =“@ parent”有效,但它不是一个总是只重新加载整个表来显示对话框的解决方案。
有人可以给我一个提示吗?
此致 弗洛里安
答案 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}">