我有一个主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 :(得分:1)
我看到你正在使用PrimeFaces。
只需使用<p:dialog>
代替window.open()
。另请参阅showcase。这会在同一个窗口中创建一个<div>
元素,因此您可以从那里立即访问主窗体。
答案 1 :(得分:0)
在主页面添加一个更新所述组件的JavaScript函数。从弹出窗口中的onunload事件中调用它。
我不太熟悉重新呈现组件JavaScript的问题;在世界上最糟糕的情况下,您可以添加一个commandButton来刷新组件,使其通过CSS不可见,并使JS启动其click
事件(like in this example)