2016-04-19 20 views
0

私はprimefacesのcommandLinkをクリックして、ウィンドウの内容を更新しようとしている:再評価onCompleteのJSF - primefaces

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

が、条件のチェックが再びテストしているように見えることはありませんか? ofcourseのすべてのクリックでウィンドウを開きます

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

上記の文..

私はこれをどのように解決することができ

?それはあなたが条件演算子と自分のフィールド documentAlreadyOpenedInExternalWindowisがブール値である場合、あなたは次のように使用することができますを使用することができる新しいウィンドウがすでに開いて他の開いている場合、私は質問を理解してどのようなPrimefaces 5.2

+0

... – Kukeltje

+0

@Kukeltjeはそれを試してみましたが、それは動作していないようです。 – GregD

+0

"動作していないようです" ...何が**行われますか?応答はどのように見えますか?実際に何をしましたか? – Kukeltje

答えて

-1

あなたは、ウィンドウの内容を更新しようとしていますさcommandLink自体を更新することで、この

<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

関連する問題