2012-01-01 103 views
1

我有一个网页p:tabView和一些p:tab里面。在其中一个选项卡中(不是默认选项),有一个p:commandLink,单击此按钮时,会更新并显示包含p:buttonp:dialog按PrimeFaces的按钮后,防止页面刷新

我的问题是,单击对话框中的按钮后,页面刷新并再次显示默认选项卡。相反,我希望按钮在不刷新页面的情况下关闭对话框。换句话说,我希望这个按钮在服务器端触发一个动作,在客户端这个动作类似于对话框右上角的x关闭链接。

回答

1

我认为你可以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();"); 
    } 
} 
+1

这工作,但它不是最直接的解决方案这是,我从你的答案了,使用号码:的commandButton而不是p:按钮。这让你可以使用actionListener =“mrBean.doSomething”type =“Button”oncomplete =“dialog.hide()”,这是足够的,而不需要打扰RequestContext – perissf 2012-01-02 08:02:46

+0

:P哈哈斯里..我读得太快,误解了你,想在服务器端做到这一点 – 2012-01-02 08:26:46