2016-07-28 28 views
0

Ich verwende PF v.5.3.5 und JSF v.2.2.8. Es ist ein häufiges Thema in SO. Ich habe festgestellt, dass in der Dokumentation zu PF v5.3.5 ein Fehler im Zusammenhang mit dem appendTo-Attribut aufgetreten ist.Primefaces v.5.3.5 bestätigen Dialog Render Problem außerhalb Haupt h: Formular und innerhalb Hauptformular gerendert wird, aber es funktioniert nicht richtig

erster Ansatz

Die p: confirmDialog gemacht wird und Command gemacht werden, sondern Aktionen nicht funktionieren und die Nachricht wiedergegeben wird nicht, wenn es innerhalb von verschachtelten h gesetzt wird: Form.

2st Ansatz

Wenn ich diesen Dialog außerhalb der Haupt h Ort: bilden sie überhaupt nicht auch gemacht wird, wenn ich die globale = „true“ Attribut hinzufügen.

3st Ansatz

Der p: confirmDialog gemacht wird und Command gemacht werden, sondern Aktionen nicht funktioniert und die Nachricht wiedergegeben wird, wenn die verschachtelte h: Form entfernt wird.

<h:form> 
... 
       <p:confirmDialog id="askSessionDialog1" widgetVar="askSessionDialog1" severity="alert" 
           appendTo="@(body)" rendered="#{treeData.askSessionDialogRendered}" visible="#{treeData.askSessionDialogRendered}"> 
        <h:form> 
        <f:facet name="message"> 
         <h:outputText value="#{msg.WEB_ADMIN_PAGES_TREESEGMENT_NOSESSION}" escape="false"/> 
        </f:facet> 

         <p:commandButton value="#{msg.WEB_BUTTONS_OK}" action="#{treeData.save(false, true)}" icon="fa fa-check" 
             update="@(form)" type="button" /> 
         <p:commandButton value="#{msg.WEB_BUTTONS_CANCEL}" action="#{treeData.setAskSessionDialogRendered(false)}" 
             icon="fa fa-close" onclick="PF('askSessionDialog1.hide()')" update="@(form)" type="reset" /> 
        </h:form> 
       </p:confirmDialog> 
... 
</h:form> 

BECKEND TEIL

setAskSessionDialogRendered(true); 
RequestContext.getCurrentInstance().update("treeSegmentForm askSessionDialog askTurnOffDialog askSessionDialog1 askTurnOffDialog1"); 

Vielen Dank im Voraus für konstruktive Beiträge und Kommentare.

+0

versuchen Sie dies, um Ihre Befehlsschaltfläche arbeiten hinzufügen '' –

+0

@YagamiLight Vielen Dank. Ich habe viele Versuche probiert, aber das ist eine gute Idee! – user321

+0

Wenn es die Lösung ist, werde ich die Lösung posten und als Lösung markieren OK –

Antwort

0

Gelöst Dies ist der beste Ansatz, der für mich jetzt funktioniert.

<h:form> 
... 
<p:confirmDialog id="askSessionDialog" widgetVar="askSessionDialog" severity="alert" 
           appendTo="@(body)" rendered="#{treeData.askSessionDialogRendered}" visible="#{treeData.askSessionDialogRendered}"> 
        <f:facet name="message"> 
         <h:outputText value="#{msg.WEB_ADMIN_PAGES_TREESEGMENT_NOSESSION}" escape="false"/> 
        </f:facet> 

        <h:form> 
         <p:commandButton value="#{msg.WEB_BUTTONS_OK}" icon="fa fa-check" type="button" accesskey="o"> 
          <p:ajax event="click" listener="#{treeData.save(false, true)}" oncomplete="PF('askSessionDialog').hide()" 
            update="@(form)" /> 
         </p:commandButton> 
         <p:commandButton value="#{msg.WEB_BUTTONS_CANCEL}" icon="fa fa-close" type="reset" accesskey="c"> 
          <p:ajax event="click" listener="#{treeData.setAskSessionDialogRendered(false)}" 
            onsuccess="PF('askSessionDialog').hide()" update="@(form)" /> 
         </p:commandButton> 
        </h:form> 
       </p:confirmDialog> 
... 
</h:form> 

BACKEND

setAskSessionDialogRendered(true); 
RequestContext.getCurrentInstance().update("treeSegmentForm"); 

SPACIAL DANK: @YagamiLight Er half mir, meine Lösung zu beginnen.