1 つのフォームに 2 つのプライムフェイス パネルがあります。
<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>
oncomplete 属性でパネルを閉じる関数を呼び出す別の commandButton があります。
<p:commandButton id="btnadd" value="#{bundle.LabelSave}" update=":forminput :formcollector"
action="#{createProduct.createNew}" oncomplete="handleComplete(xhr, status, args)">
次のように、バッキング Bean に成功コールバック パラメータを設定します。
RequestContext.getCurrentInstance().addCallbackParam("success", true);
そして、JavaScript 関数 handleComplete は以下のように;
function handleComplete(xhr, status, args) {
if(args.success) {
pnlOne.close();
pnlTwo.close();
} }
問題は、これら 2 つのパネルのうちの 1 つだけを閉じることができることです。私の目的は、両方を連続して閉じることです。しかし、うまくいきません。javascript での最初のクローズ実行が ajax 要求をトリガーし、2 番目のパネルのクローズが呼び出されるまでに ajax 要求を完了していない可能性がありますか? どんなアイデアでも。よろしくお願いいたします。