<p:dataTable id="id" value="#{bean.soemList}" var="account">
<p:commandLink value="#{account.id}" action="#{bean.methodCall}"
update="dialogID" oncomplete="dlg1.show();">
</p:commandLink>
...
<p:dialog header="#{i18n.details}" widgetVar="dlg1" modal="true" height="200" width="600">
<h:panelGroup id="dialogID" layout="block">
<h:outputLabel value="#{bean.var1}"></h:outputLabel>
</h:panelGroup>
</p:dialog>
当链接位于p:dialog
之外时, p:dataTable
会更新,但当链接位于p:dataTable
时,p:dialog
不会显示更新的值。我需要在p:dataTable
中保留链接。要更新的组件不在dataTable中。
答案 0 :(得分:0)
如果该对话框的元素位于他们自己的<p:commandLink>
内,我只能在dataTable中获得update
<h:form>
对话框的组件。
示例:
<p:dialog appendToBody="true" ...>
<h:form id="dialogForm" ...>
...
</h:form>
</p:dialog>
<p:dataTable ...>
<h:form id="dataTableForm" ...>
...
</h:form>
</p:dataTable>
另请注意,我在对话框中添加了属性appendToBody="true"
。这对于在AJAX更新后通过id定位对话框非常重要。
答案 1 :(得分:0)
您是否尝试按以下方式附加表单ID
<form id="myformid">
.....
<p:commandLink value="#{account.id}" action="#{bean.methodCall}" update=":myformid:dialogID" oncomplete="dlg1.show();">
</p:commandLink>
....
<p:dialog header="#{i18n.details}" widgetVar="dlg1" modal="true"
height="200" width="600">
<h:panelGroup id="dialogID" layout="block">
<h:outputLabel value="#{bean.var1}"></h:outputLabel>
....
</form>
希望它有所帮助!