我正在研究primeface,Dialog框架。primefaces openDialog問題
但是沒有像openDialog
或closeDialog
這樣的方法。
我使用:
RequestContext.getCurrentInstance().openDialog("viewCars", options, null);
但目前還沒有這樣的方法。我正在使用最新的primefaces庫,即4.0。
我正在研究primeface,Dialog框架。primefaces openDialog問題
但是沒有像openDialog
或closeDialog
這樣的方法。
我使用:
RequestContext.getCurrentInstance().openDialog("viewCars", options, null);
但目前還沒有這樣的方法。我正在使用最新的primefaces庫,即4.0。
這是我的方式做
RequestContext context2 = RequestContext.getCurrentInstance();
context2.execute("PF('opendialog').show()");
記得opendialog
是xhtml
的widgetVar
應該像
<p:dialog id="dialog" header="Open Dialog Box" widgetVar="opendialog">
我已經使用這個和它的工作。
primefaces RequestContext如anas所述,可以從後端執行javascript。如果這是你需要的,那麼這應該是一個最佳的解決方案,但是,如果你必須打開一個對話框,點擊按鈕或進行處理,你可以使用按鈕事件。
<p:commandButton value="Open dialog" actionListener="anyMethod" onsuccess="dialog.show();"/>
<p:commandButton value="Close dialog" actionListener="anyMethod" onsuccess="dialog.hide();"/>
您可以使用onsuccess或oncomplete,根據您的需要。
實際上有這樣的方法。 (4.0)
檢查已導入正確的RequestContext類
import org.primefaces.context.RequestContext;
有很多的RequestContext類的其他圖書館,你可以使用IDE的自動完成功能誤選錯了一個。
您應該添加以下配置到 「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)
'opendialog.show()'語法已被廢棄,使用'PF('opendialog')。show()' – Kuba
這是正確的,我已經使用您提供的方法忘了提及它這裏感謝通知 – Anas
上面的例子是針對外部頁面的,你在頁面上給出了內部p:對話框的解決方案 – Sarz