0

我想以<p:dialog>编程方式打开。

我尝试了在PrimeFaces 展示示例中找到DialogBean代码:

RequestContext.getCurrentInstance().openDialog("viewCars");

但是,它导致了编译错误:

对于 RequestContext 类型,方法 openDialog(String) 未定义

我寻找了一种在 JavaScript 中执行此操作的方法,但尚不清楚如何在 JavaScript 中执行此操作。我怎样才能打开一个<p:dialog>按一下按钮?

4

1 回答 1

0

PrimeFaces 展示目前运行 PrimeFaces 4.0。仔细查看站点页脚中的版本信息。是在 PrimeFaces 4.0 中引入的,并且在 3.5RequestContext#openDialog()中确实不存在。因此,此编译错误表明您使用的是旧版本,例如 3.5。在该版本中,您应该在 JavaScript 变量上调用该函数,该变量引用您可以通过属性指定的对话框。show()widgetVar

例如纯粹在视图中:

<h:form>
    <p:commandButton ... oncomplete="dialogWidget.show()" />
</h:form>
<p:dialog widgetVar="dialogWidget" ...>
    ...
</p:dialog>

或者,RequestContext#execute()如果您绝对需要:

<h:form>
    <p:commandButton ... action="#{bean.openDialog}" />
</h:form>
<p:dialog widgetVar="dialogWidget" ...>
    ...
</p:dialog>

public void openDialog() {
    // ...
    RequestContext.getCurrentInstance().execute("dialogWidget.show()");
}
于 2013-09-30T11:15:38.927 回答