Jsf 类型RequestContext的方法openDialog(String)未定义
我想以编程方式打开Jsf 类型RequestContext的方法openDialog(String)未定义,jsf,primefaces,dialog,requestcontext,Jsf,Primefaces,Dialog,Requestcontext,我想以编程方式打开 我尝试了以下代码: 但是,它导致了一个编译错误: 类型RequestContext的方法openDialog(String)未定义 我寻找了一种用JavaScript实现的方法,但不清楚如何用JavaScript实现。如何在按下按钮时打开?PrimeFaces showcase当前运行PrimeFaces 4.0。请仔细查看站点页脚中的版本信息。RequestContext#openDialog()是在PrimeFaces 4.0中引入的,并且确实是。因此,此编译错误表明您使
我尝试了以下代码:
但是,它导致了一个编译错误:
类型RequestContext的方法openDialog(String)未定义
我寻找了一种用JavaScript实现的方法,但不清楚如何用JavaScript实现。如何在按下按钮时打开
?PrimeFaces showcase当前运行PrimeFaces 4.0。请仔细查看站点页脚中的版本信息。RequestContext#openDialog()
是在PrimeFaces 4.0中引入的,并且确实是。因此,此编译错误表明您使用的是旧版本,如3.5。在该版本中,您应该调用JavaScript变量上的show()
函数,引用可以通过widgetVar
属性指定的对话框
例如,纯粹在观点上:
<h:form>
<p:commandButton ... oncomplete="dialogWidget.show()" />
</h:form>
<p:dialog widgetVar="dialogWidget" ...>
...
</p:dialog>
与
你看过showcase页面吗?因为你的问题是一个基本问题,所以你有没有检查过任何东西?最好从一本关于JSF和/或PrimeFaces的基本书籍开始。祝你好运通过这种方式,您可以显示包含在当前xhtml页面中的对话框。但是如果您查看PF showcase,“viewCars”是一个不同的xhtml页面。有没有办法用PF 3.5加载另一个xhtml页面?@yannicuLar:没有。这是PF 4.0新的“对话框架”功能的一部分。只需升级到pf4.0。不用担心,我已经通过包含ui:include的对话框来实现了
<h:form>
<p:commandButton ... oncomplete="dialogWidget.show()" />
</h:form>
<p:dialog widgetVar="dialogWidget" ...>
...
</p:dialog>
<h:form>
<p:commandButton ... action="#{bean.openDialog}" />
</h:form>
<p:dialog widgetVar="dialogWidget" ...>
...
</p:dialog>
public void openDialog() {
// ...
RequestContext.getCurrentInstance().execute("dialogWidget.show()");
}