按PrimeFaces的按钮后,防止页面刷新
问题描述:
我有一个网页p:tabView
和一些p:tab
里面。在其中一个选项卡中(不是默认选项),有一个p:commandLink
,单击此按钮时,会更新并显示包含p:button
的p:dialog
。按PrimeFaces的按钮后,防止页面刷新
我的问题是,单击对话框中的按钮后,页面刷新并再次显示默认选项卡。相反,我希望按钮在不刷新页面的情况下关闭对话框。换句话说,我希望这个按钮在服务器端触发一个动作,在客户端这个动作类似于对话框右上角的x
关闭链接。
答
我认为你可以PrimeFaces v3.0.RC2的RequestContext实现它:
<p:dialog widgetVar="dialog">
<p:commandButton actionListener="#{mrBean.close}" value="Close" />
</p:dialog>
@ManagedBean
@RequestScoped
public class MrBean {
public void close() {
RequestContext context = RequestContext.getCurrentInstance();
context.execute("dialog.hide();");
//On primefaces >= 3.x use context.execute("PF('dialog').hide();");
}
}
这工作,但它不是最直接的解决方案这是,我从你的答案了,使用号码:的commandButton而不是p:按钮。这让你可以使用actionListener =“mrBean.doSomething”type =“Button”oncomplete =“dialog.hide()”,这是足够的,而不需要打扰RequestContext – perissf 2012-01-02 08:02:46
:P哈哈斯里..我读得太快,误解了你,想在服务器端做到这一点 – 2012-01-02 08:26:46