primefaces 对话框框架:关闭对话框 "onclick"
primefaces dialog framework: close dialog "onclick"
我使用对话框框架展示了一个 Primefaces 对话框,这样:
RequestContext.getCurrentInstance().openDialog("myDialog", options, params);
在页面 myDialog.xhtml 我有一条消息和两个按钮:是或否。
我想关闭带有事件 "onclick" 的 Pf 对话框,有没有办法做到这一点?
我不能使用 p:dialog 静态定义对话框,也不能使用 PF('widgetVarName').hide();
关闭它
一般来说,您可能需要这样的东西:
<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}" />
我使用对话框框架展示了一个 Primefaces 对话框,这样:
RequestContext.getCurrentInstance().openDialog("myDialog", options, params);
在页面 myDialog.xhtml 我有一条消息和两个按钮:是或否。 我想关闭带有事件 "onclick" 的 Pf 对话框,有没有办法做到这一点?
我不能使用 p:dialog 静态定义对话框,也不能使用 PF('widgetVarName').hide();
一般来说,您可能需要这样的东西:
<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}" />