我在一种形式中有两个 primefaces 面板。
<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 属性上调用面板关闭函数。
<p:commandButton id="btnadd" value="#{bundle.LabelSave}" update=":forminput :formcollector"
action="#{createProduct.createNew}" oncomplete="handleComplete(xhr, status, args)">
我在backing bean中设置成功回调参数如下;
RequestContext.getCurrentInstance().addCallbackParam("success", true);
和javascript函数handleComplete如下;
function handleComplete(xhr, status, args) {
if(args.success) {
pnlOne.close();
pnlTwo.close();
} }
问题是这两个面板中只有一个可以关闭。我的目的是相继关闭两者。但它不起作用。可能是因为 javascript 中的第一次关闭执行触发了一个 ajax 请求,在调用第二个面板关闭时还没有完成 ajax 请求?任何想法的家伙。非常感激您的帮忙。