Primefaces对话框在第二次调用时关闭

Primefaces对话框在第二次调用时关闭,primefaces,dialog,Primefaces,Dialog,我有一个datatable,每行有一个命令按钮 问题是,当我需要为第一个对话框打开一个对话框,然后单击另一个按钮时,我需要更新它。问题是当我点击第二个按钮时,它会关闭对话框,用户必须再次点击第二个按钮才能再次打开对话框 提前感谢你的帮助 我在这里进一步解释据我所知,您可以打开任意多个对话框,只需确保您为它们提供了唯一的widgetVar id: <p:dialog widgetVar="dlg1"> <h:outputText value="Hello from fir

我有一个datatable,每行有一个命令按钮

问题是,当我需要为第一个对话框打开一个对话框,然后单击另一个按钮时,我需要更新它。问题是当我点击第二个按钮时,它会关闭对话框,用户必须再次点击第二个按钮才能再次打开对话框

提前感谢你的帮助


我在这里进一步解释

据我所知,您可以打开任意多个对话框,只需确保您为它们提供了唯一的widgetVar id:

  <p:dialog widgetVar="dlg1">
  <h:outputText value="Hello from first dialog"/> 
</p:dialog>
<p:dialog widgetVar="dlg2">
  <h:outputText value="Hello from second dialog"/>
</p:dialog>


单击上面的命令按钮将并行打开两个单独的对话框。

我认为您的按钮更新了包装对话框的整个命名容器。如果你这样做了,那就是你得到的

您应该更新对话框中包装组件的容器

例如: 不要:

<h:panelGrid id="gridContainer">
  <p:dialog id="dialogComponent>

   // components

  </p:dialog>
</h:panelGrid>

<p:commandButton update="#{p:component('gridContainer')}"/>  
做:

<h:panelGrid id="gridContainer">
  <p:dialog id="dialogComponent>

     <h:panelGrid id="insideContainer">
        // components
     </h:panelGrid>

  </p:dialog>
</h:panelGrid>

<p:commandButton update="#{p:component('insideContainer')}"/>  
我想你明白了。 希望能有帮助

<h:panelGrid id="gridContainer">
  <p:dialog id="dialogComponent>

     <h:panelGrid id="insideContainer">
        // components
     </h:panelGrid>

  </p:dialog>
</h:panelGrid>

<p:commandButton update="#{p:component('insideContainer')}"/>