2014-10-01 172 views
0

我正在使用jsf頁面,使用primefaces和我有一個問題: 我有一個對話框,女巫有一個按鈕,點擊後,我'另一個對話框(彈出)。 所以,我的問題是,當我關閉第二個對話框時,第一個對話框也關閉了。隱藏對話框後,另一個對話框也隱藏

所以,這是第一個對話框:

<h:form id="propertyForm"> 
    <p:dialog id="propertyValuesDlg" 
       resizable="false" 
       modal="true" 
       closable="false"> 
     <p:panelGrid columns="1" style="width: 100%;"> 
      <p:dataTable var='propertyValue' 
         value="..." 
         id="propertyValuesTable" 
         widgetVar="propertyValuesTableWidget" 
         rowKey="..." 
         selection="..."> 
       <p:ajax event="rowSelectCheckbox"/> 
       <p:ajax event="rowUnselectCheckbox"/> 
       <p:ajax event="toggleSelect"/> 

       <p:column style="text-align:center; width:20px;" 
          selectionMode="multiple"/> 
       <p:column headerText="Property Name"> 
        <h:outputText value="..." title="..."/> 
       </p:column> 

       <p:column headerText="Property Value"> 
        <p:inputText value="..."/> 
       </p:column> 
      </p:dataTable> 
      <f:facet name="footer"> 
       <p:commandButton value="Add" 
           icon="button-add-class" 
           oncomplete="addPropertyDialog.show();" 
           update=":addPropertyDlg" 
           immediate="true"/> 
      </f:facet> 
     </p:panelGrid> 
    </p:dialog> 
</h:form> 

後點擊「添加」按鈕,我得到第二個對話框:

<p:dialog id="addPropertyDlg" 
      widgetVar="addPropertyDialog" 
      resizable="false" 
      appendToBody="true"> 
    <p:panel id="addPropertyPanel" style="width: 100%"> 
     <h:form> 
      <h:panelGrid columns="3"> 
       <p:outputLabel for="addPropertyDropdown" 
           value="Select property: " 
           style="width: 80px"/> 
       <p:selectOneMenu id="addPropertyDropdown" 
           value="..." 
           effect="fade" 
           converter="..." 
           style="width: 150px;"> 
        <f:selectItems value="..." 
            var=".." 
            itemLabel="..." 
            itemValue="..."/> 
       </p:selectOneMenu> 
       <p:commandButton value="OK" 
           icon="button-accept-class" 
           actionListener="..." 
           oncomplete="addPropertyDialog.hide();" 
           update=":propertyForm:propertyValuesDlg"/> 
      </h:panelGrid> 
     </h:form> 
    </p:panel> 
</p:dialog> 

因此,任何想法,我應該怎麼做,以保持propertyValuesDLg打開?

+0

將Form Element放置在兩個更高的元素上。像。這可能有幫助。 – 2014-10-01 06:48:03

+0

這是因爲你正在更新OK按鈕中的第一個對話框!基本上,如果在自然地打開對話框時更新對話框,它將關閉,因爲DOM中的內容已被替換。嘗試更新'propertyValuesTable'。 – 2014-10-01 06:52:30

+0

@HatemAlimam非常感謝,它爲我工作!您可以將其作爲答案發布 – 2014-10-01 08:15:45

回答

0

哈特姆Alimam寫道:

那是因爲你在確定按鈕更新的第一個對話框!基本上,如果在自然地打開對話框時更新對話框,它將關閉,因爲DOM中的內容已被替換。嘗試更新propertyValuesTable。