隐藏对话框后,另一个对话框也隐藏了

时间:2014-10-01 06:34:57

标签: jsf primefaces

我正在使用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>

点击&#34;添加&#34;按钮,我得到第二个对话框:

<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打开?

1 个答案:

答案 0 :(得分:0)

Hatem Alimam写道:

那是因为您正在更新“确定”按钮中的第一个对话框!基本上,如果您在对话框自动打开时更新它将会关闭,因为整个内容已在DOM中被替换。尝试更新propertyValuesTable。