Диалог Primefaces не отображается во второй раз - PullRequest
0 голосов
/ 15 июня 2011

Я работаю с Primeface. Моя функциональность заключается в том, чтобы отображать записи в таблице данных с непосредственным редактированием простых лиц. Здесь у нас есть кнопка «Добавить», которая отображает диалоговое окно для ввода новой записи. После ввода значений и нажатия кнопки «Кнопка «Сохранить», запись вставляется, и таблица данных обновляется вместе с записью.Моя проблема в том, что когда я нажимаю кнопку «Добавить» во второй раз, диалоговое окно не открывается. Вот мой код.

        <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 Ответ

1 голос
/ 15 июня 2011

Теперь поправьте меня, если я ошибаюсь, но если вы нажмете "Сохранить" в диалоговом окне, вы никогда не закроете его?Я не буду знать, поможет ли это, но вы можете попробовать хотя бы

...