Primefaces Bestätigung dialolog in der Registerkarte Ansicht nicht verbergen, nach der Aktion gefeuert

Ich habe ein Problem mit meiner Bestätigungs-dialog. Es ist einfach nicht zu schließen, nach dem Klick auf den bestätigen-button. Dies tritt nur auf, wenn mein Formular in einem tab anzeigen. (Genau der code funktioniert einwandfrei, wenn meine form ist nicht in einer Registerkarte anzeigen, aber nur eine Tafel oder so etwas ähnliches.)

        <h:form id="timingTableForm">
            <p:dataTable var="item" value="#{requestBean.rmRequest.timingList}" id="timingDataTable" editable="true">
             //some dataTable 
            </p:dataTable>
            <p:confirmDialog closable="true" appendToBody="true" id="confirmDialog" message="#{msg.conf_deleteyesno}" header="#{msg.conf_header}" severity="alert" widgetVar="confirmation">  
                <p:commandButton id="confirm" value="#{msg.btn_yessure}" update="timingTableForm" oncomplete="confirmation.hide()" actionListener="#{requestBean.deleteTiming}" process="@this"/>  
                <p:commandButton id="decline" value="#{msg.btn_notyet}" onclick="confirmation.hide()" type="button" />   
            </p:confirmDialog>
        </h:form>

Wenn ich "oncomplete" auf "onclick", es funktioniert auch, aber ich wollen, dass der dialog verschwindet nicht, bis die server-side-Betrieb abgeschlossen ist.

Wenn ich drücken Sie die bestätigen-Taste, geschieht etwas seltsames in der resultierenden HTML:

<div id="mainTabView:timingTableForm:confirmDialog" class="ui-confirm-dialog ui-dialog ui-widget ui-widget-content ui-overlay-hidden ui-corner-all ui-shadow" style="width: auto; height: auto;">

<div id="mainTabView:timingTableForm:confirmDialog" class="ui-confirm-dialog ui-dialog ui-widget ui-widget-content ui-corner-all ui-shadow ui-overlay-visible" style="width: auto; height: auto; left: 994.5px; top: 186px; visibility: visible; z-index: 1006;">

Einen neuen div mit der ID meiner confirm-dialog gerendert wird. Das Ergebnis ist eine versteckte bestätigen diolog (wie erwartet), aber es gibt auch einen neuen dialog, der immer noch sichtbar ist.
Wenn ich drücken Sie die Schaltfläche "bestätigen", ich habe wieder 2 versteckte entsprechen Dialogen und 1 sichtbarer dialog und so weiter...

Mache ich etwas falsch? Finden Sie alle Fehler? Oder könnte das ein bug in primefaces?

  • Primefaces 3.4.1
  • Läuft auf GlassFish 3.1.2
  • Browser Firefox 16.0.2

Vielen Dank im Voraus,
Fant


Tatsächlich fand ich eine Lösung für mein problem:

Das problem tritt nur auf, wenn ich versuche zu aktualisieren, die ganze form, die enthält auch den dialog bestätigen. Wenn ich nur update, einige spezifische Bereiche, die in dieser form funktioniert es einwandfrei.

  • Warum nicht bewegen Sie Ihre confirmDialog außerhalb der tabView ?
  • Es ist nicht möglich, dies zu tun, weil hier einige template-design, aber trotzdem danke für dein Kommentar. Ich finnaly eine Lösung gefunden für mein problem hier. Ich bin mir nicht erlaubt zu aktualisieren, die ganze form, aber wenn ich update jedes einzelne Kind in dieser form (außer dialog) funktioniert alles einwandfrei
InformationsquelleAutor stg | 2012-11-23
Schreibe einen Kommentar