2012-07-29 85 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