2016-04-19 66 views
0

我想通過點擊primefaces更新窗口的內容commandlink:重新評估的onComplete JSF - primefaces

<p:commandLink oncomplete="if(#{documentController.documentAlreadyOpenedInExternalWindow}) window.open('previewDocument.xhtml?documentId=#{documentController.documentId(task)}', 'new');" 

但健康檢查似乎永遠不會再進行測試?

<p:commandLink oncomplete="if(true) window.open('previewDocument.xhtml?documentId=#{documentController.documentId(task)}', 'new');" 

上述聲明將ofcourse打開每點擊窗口..

我怎麼能解決這個問題?

Primefaces 5.2

+0

通過更新commandLink本身... – Kukeltje

+0

@Kukeltje試過,但它似乎並沒有工作。 – GregD

+0

「似乎沒有工作」...... **發生了什麼?答案是什麼樣的?你究竟做了什麼? – Kukeltje

回答

-1

我的理解問題是你要更新窗口的內容,如果它已經打開,否則打開新的窗口,您可以使用條件運算符,如果你的領域documentAlreadyOpenedInExternalWindowis是布爾那麼你可以使用像這

<p:commandLink oncomplete=" 
     #{documentController.documentAlreadyOpenedInExternalWindow?alert('succeed'); 
    :window.open('previewDocument.xhtml?documentId=#{documentController.documentId(task)}', 'new')" 
update="yourElement/Form ID"/> 
+0

這就是我的問題,並不起作用。 onComplete將在我的頁面呈現中進行評估,並且在完成操作後不再進行評估。 – GregD

+0

控制器是否在視野範圍內?和你打開的頁面和打開的頁面是指同一個控制器,這些控制器的範圍是什麼,試圖在構造函數和設置器中放置一個調試點,我認爲你的領域是重新初始化,一旦你是導航到其他窗口,或者在單擊時單擊「documentAlreadyOpenedInExternalWindow」的值。 – techipank