2012-07-29 56 views
0

我有一個主要的jsf頁面,它包含一個指向彈出窗口的鏈接。更新父級jsf頁面的組件

我想更新主jsf頁面的一個組件。當我關閉彈出窗口。

popup.xhtml:

<h:commandButton value="close" onclick="return window.close();" 
        action="showDevoir.xhtml"> 
     <f:ajax execute="@form" render=":devoirForm" /> 
</h:commandButton> 

main.xhtml

<form id="devoirForm" > 

<p:panel id="devoir" /> 

</form> 

當我關閉彈出,我想更新使用id = 「devoirForm」

回答

0
形式的面板組件

向您的主頁添加一個更新所述組件的JavaScript函數。從彈出窗口的onunload事件中調用它。我不太熟悉重組渲染組件JavaScript的問題;在最糟糕的世界中,你可以添加一個命令按鈕,刷新組件,使其不可見通過CSS,並使JS啓動它的事件(like in this example

1

我看到你正在使用PrimeFaces。

只需使用<p:dialog>而不是window.open()。另見showcase。這會在同一個窗口中創建一個<div>元素,所以您只需從那裏即時訪問主窗體。

+0

爲什麼Ajax的render屬性無法完成這項工作? – 2012-07-29 23:49:16

+0

僅僅因爲它不在同一頁面。 – BalusC 2012-07-30 01:24:25

+0

謝謝你的回報。好主意的 2012-07-31 04:00:10