无法从p:commandLink'update'属性更新组件,链接在p:dataTable中存在

Amr*_*uta 5 primefaces jsf-2

<p:dataTable id="id" value="#{bean.soemList}" var="account">
    <p:commandLink value="#{account.id}" action="#{bean.methodCall}" 
        update="dialogID" oncomplete="dlg1.show();">
    </p:commandLink>
Run Code Online (Sandbox Code Playgroud)

...

<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>
Run Code Online (Sandbox Code Playgroud)

p:dialog链接在外面时会更新p:dataTable,但是当链接放入时p:dataTable,p:dialog不会显示更新的值.我需要保持链接p:dataTable.要更新的组件不在dataTable中.

map*_*aft 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>
Run Code Online (Sandbox Code Playgroud)

另请注意,我向对话框添加了属性appendToBody="true". 这对于 AJAX 更新后通过 id 定位对话框非常重要。