我使用对话框框架以这种方式显示Primefaces对话框:
RequestContext.getCurrentInstance().openDialog("myDialog", options, params);
在myDialog.xhtml页面中,我有一条消息和两个按钮:是或否。 我想用事件“onclick”关闭Pf对话框,有没有办法做到这一点?
我不能使用p:对话框静态定义对话框,而是使用PF('widgetVarName').hide();
答案 0 :(得分:2)
通常,您可能需要以下内容:
<p:commandButton action="#{someBean.closeDialog('yes')}" process="@form" update="@form"
icon="#{icons.yes}" value="#{bundle.yes}" />
<p:commandButton action="#{someBean.closeDialog('no')}" process="@form" update="@form"
icon="#{icons.no}" value="#{bundle.no}" />
public void closeDialog(String choice)
{
RequestContext requestContext = RequestContext.getCurrentInstance();
Object someData = executeChoice(choice);
requestContext.closeDialog(someData);
}
否则,如果您真的需要关闭onclick
上的对话框(听起来有点奇怪......),您可以使用:
<p:remoteCommand name="closeDialog" action="#{someBean.closeDialog}" process="@this" />
<p:commandButton type="button" onclick="closeDialog()" icon="#{icons.close}"
value="#{bundle.close}" />
public void closeDialog()
{
RequestContext requestContext = RequestContext.getCurrentInstance();
requestContext.closeDialog(null);
}
最后,如果您需要纯javascript 解决方案,您可能需要:
<p:commandButton type="button"
onclick="PrimeFaces.closeDialog({pfdlgcid:'#{param.pfdlgcid}'})"
icon="#{icons.close}" value="#{bundle.close}" />