Primefaces对话框第二次不显示

时间:2011-06-15 07:16:46

标签: jsf dialog primefaces

我正在使用Primefaces.My的功能是在数据表中显示记录,并使用primefaces内联编辑。这里我们有一个“添加”按钮,显示一个输入新记录的对话框。输入值后点击“保存“按钮,插入记录,并使用记录更新数据表。    我的问题是,当我第二次点击“添加”按钮时,对话框没有打开。这是我的代码。

        <h:form id="myForm" prependId="false">
    <p:dataTable  var="client" id="clientTable" value="#{clientView.clientModelList}" paginatorPosition="top"  paginator="true" rows="10"  
             paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
             rowsPerPageTemplate="10,20,25" rowEditListener="#{clientView.rowEditListener}" onRowEditUpdate="growl" >

            <p:column style="width:60px;">              
            <p:rowEditor/> 
            <h:commandButton  style="padding-left:5px;" image="/resources/images/delete.jpeg" styleClass="spa"  value="delete" immediate="true" actionListener="#{clientView.delete}" >
                <f:attribute name="username" value="#{client}" />
            </h:commandButton>

            </p:column>

            <p:column>

                    <f:facet name="header">
                        <h:outputText value="#{myLoginBean.multilangMap['everis.client.idCliente']}" />
                    </f:facet>
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{client.codCliente}" />
                        </f:facet>
                        <f:facet name="input">
                            <h:inputText required="true" requiredMessage="#{msg.idClienteEmpty}" maxlength="80"  value="#{client.codCliente}" />
                        </f:facet>
                    </p:cellEditor>
            </p:column>

            <p:column>

                <f:facet name="header">
                    <h:outputText value="#{myLoginBean.multilangMap['everis.client.desCliente']}" />
                </f:facet>

                <p:cellEditor>

                    <f:facet name="output">
                        <h:outputText value="#{client.desCliente}" />
                    </f:facet>
                    <f:facet name="input">
                        <h:inputText required="true" requiredMessage="#{msg.desClienteEmpty}" maxlength="255"  value="#{client.desCliente}" />
                    </f:facet>

                </p:cellEditor>
            </p:column>


    </p:dataTable>
        </div>
        <div class="divButPosition">

        <h:panelGroup id="buttonPanel">

            <p:commandButton id="buttons" value="Add" actionListener="#{clientView.addEmptyClient}"
            async="true" update="buttonPanel,dlgForm:table"  rendered="#{!clientView.addNewRow}" oncomplete="alert('complete');clientDialog.show();" />

        </h:panelGroup>

    </div>
    </h:form>   
    <p:growl id="growl" showDetail="false" />  
<p:dialog id="clientDialog"  header="Client Detail"  widgetVar="clientDialog" resizable="false" width="500" showEffect="explode" hideEffect="explode" modal="false" closable="false">
    <h:form id="dlgForm" > 

<h:dataTable var="newclient" id="table" value="#{clientView.newClient}">
    <h:column>
        <f:facet name="header">
            <h:outputText value="#{myLoginBean.multilangMap['everis.client.idCliente']}" />
        </f:facet>
        <h:inputText value="#{newclient.codCliente}" required="true" requiredMessage="#{msg.idClienteEmpty}"  maxlength="80"/>
    </h:column>
    <h:column>
        <f:facet name="header">
            <h:outputText value="#{myLoginBean.multilangMap['everis.client.desCliente']}" />
        </f:facet>
        <h:inputText value="#{newclient.desCliente}" required="true" requiredMessage="#{msg.desClienteEmpty}"   maxlength="255"/>
    </h:column>
</h:dataTable> 
<p:commandButton value="everis.save"  actionListener="#{clientView.saveClient}" async="true" update="growl,buttonPanel,clientTable" oncomplete="handleRequest(args ,document.getElementById('clientDialog'))" />
<p:commandButton value="#{myLoginBean.multilangMap['everis.cancel']}" immediate="true" update="buttonPanel,table" async="true"  actionListener="#{clientView.cancelClient}" oncomplete="clientDialog.hide();" />
    </h:form>  
</p:dialog> 

非常感谢每一个人。

1 个答案:

答案 0 :(得分:1)

现在纠正我,如果我错了,但如果你点击对话框上的保存,你永远不会关闭它?我不知道它是否会有所帮助,但你可以尝试至少