Ich habe zwei Oberflächenteile in einer Form.Zwei Primefaces Panel in der gleichen Form kann nicht geschlossen werden über Javascript nacheinander
<p:panel id="pnlOne" widgetVar="pnlOne"> <p:ajax event="close" listener="#{createProduct.cancelAddProductCategory}"/></p:panel>'
<p:panel id=pnlTwo" widgetVar="pnlTwo"> <p:ajax event="close" listener="#{createProduct.cancelAddBrand}"/></p:panel>
Ich habe eine andere Befehlsschaltfläche, die die Panel-Close-Funktion auf seinem Oncomplete-Attribut aufrufen wird.
<p:commandButton id="btnadd" value="#{bundle.LabelSave}" update=":forminput :formcollector"
action="#{createProduct.createNew}" oncomplete="handleComplete(xhr, status, args)">
Ich legte den Erfolg Callback-Parameter in der Backing-Bean wie folgt;
RequestContext.getCurrentInstance().addCallbackParam("success", true);
Und die JavaScript-Funktion handleComplete wie unten;
function handleComplete(xhr, status, args) {
if(args.success) {
pnlOne.close();
pnlTwo.close();
} }
Das Problem ist nur eines dieser beiden Panel kann geschlossen werden. Mein Zweck ist es, beide nacheinander zu schließen. Aber es funktioniert nicht. Könnte es sein, weil die erste enge Ausführung im Javascript eine Ajax-Anfrage auslöst, die Ajax-Anfrage nicht bis zum zweiten Panel-Abschluss abgeschlossen hat? Irgendeine Idee Jungs. Ihre Hilfe wird sehr geschätzt.
Dank Lumpen. Ich habs. – frazkok