2014-02-21 63 views
1

我正在研究primeface,Dialog框架。primefaces openDialog問題

但是沒有像openDialogcloseDialog這樣的方法。

我使用:

RequestContext.getCurrentInstance().openDialog("viewCars", options, null); 

但目前還沒有這樣的方法。我正在使用最新的primefaces庫,即4.0。

回答

1

這是我的方式做

RequestContext context2 = RequestContext.getCurrentInstance(); 
    context2.execute("PF('opendialog').show()"); 

記得opendialogxhtmlwidgetVar 應該像

<p:dialog id="dialog" header="Open Dialog Box" widgetVar="opendialog"> 

我已經使用這個和它的工作。

+3

'opendialog.show()'語法已被廢棄,使用'PF('opendialog')。show()' – Kuba

+0

這是正確的,我已經使用您提供的方法忘了提及它這裏感謝通知 – Anas

+0

上面的例子是針對外部頁面的,你在頁面上給出了內部p:對話框的解決方案 – Sarz

0

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,根據您的需要。

0

實際上有這樣的方法。 (4.0)

檢查已導入正確的RequestContext類

import org.primefaces.context.RequestContext;

有很多的RequestContext類的其他圖書館,你可以使用IDE的自動完成功能誤選錯了一個。

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)