我正在使用primeface,Dialog框架。
但是没有像openDialog
或closeDialog
这样的方法。
我正在使用:
RequestContext.getCurrentInstance().openDialog("viewCars", options, null);
但没有这样的方法。我正在使用最新的primefaces库,即4.0。
答案 0 :(得分:2)
这就是我做的方式
RequestContext context2 = RequestContext.getCurrentInstance();
context2.execute("PF('opendialog').show()");
请记住opendialog
是widgetVar
在xhtml
中它应该像
<p:dialog id="dialog" header="Open Dialog Box" widgetVar="opendialog">
我已经使用了它和它的工作。
答案 1 :(得分:0)
如anas所述的Requestface文本,可以从后端执行javascript。如果这是你需要的,那将是一个最佳的解决方案,但是,如果你必须通过按钮点击或处理打开一个对话框,你可以使用按钮事件。
<p:commandButton value="Open dialog" actionListener="anyMethod" onsuccess="dialog.show();"/>
<p:commandButton value="Close dialog" actionListener="anyMethod" onsuccess="dialog.hide();"/>
您可以根据需要使用onsuccess或oncomplete。
答案 2 :(得分:0)
实际上有这样的方法。 (在4.0中)
检查您是否导入了正确的RequestContext类
import org.primefaces.context.RequestContext;
其他库中有很多RequestContext类,您可能会错误地使用IDE的自动完成功能选择错误的类。
答案 3 :(得分:0)
您应该将以下配置添加到“faces-config.xml”文件中:
<action-listener>
org.primefaces.application.DialogActionListener
</action-listener>
<navigation-handler>
org.primefaces.application.DialogNavigationHandler
</navigation-handler>
<view-handler>
org.primefaces.application.DialogViewHandler
</view-handler> `
这部分记录在primeface的ver.5.0中,但未在primeface 4.0中提及
它对我有用。 (glassfish 3.0 + primeface 4.0)