Richfaces 4在oncomplete上关闭了两个弹出窗口

时间:2013-06-04 11:49:37

标签: jsf-2 richfaces el

首先,解释我正在努力实现的目标:

我正在从表单中打开一个弹出式面板。此弹出窗口能够打开第二个弹出窗口(确认),然后从服务器调用操作,并在操作完成时关闭两个弹出窗口。

如何在完成操作后关闭两个弹出窗口(ActionListener)?

以下是我的两个例子:

<!-- language: lang-html -->
<a4j:commandButton value="execute" 
                   action="#{navigationController.navigateSomewhere}"
                   actionListener="#{beanController.doSomething}"
                   render="datatable,navigationDiv">
     <rich:componentControl event="click"  target="firstPopup, confirmPopup"
                            operation="hide" />
</a4j:commandButton>

componentControl似乎禁用了XHR调用,是否有意?

<!-- language: lang-html -->
<a4j:commandButton value="execute" 
                   action="#{navigationController.navigateSomewhere}"
                   actionListener="#{beanController.doSomething}"
                   render="datatable,navigationDiv"
                   oncomplete="#{rich:component('firstPopup')}.hide()
                               #{rich:component('confirmPopup')}.hide()">         
</a4j:commandButton>

很明显,第二个建议不起作用,也不加“AND”。顺便说一句,我使用 Richfaces 4.3.1 JSF 2.0 。删除componentControl后,XHR调用成功完成,但两个弹出窗口仍将保留在显示屏上。此外,还链接到组件的VDL文档。

a4j:commandButton

rich:componentControl

根据componentControl的描述,我的应用程序不应该这样:

  

该行为允许在目标组件上调用JavaScript API函数。在组件上触发定义的事件之后调用函数,并附加行为。可以自定义初始化变体和激活事件,并且可以将参数传递给目标组件。

1 个答案:

答案 0 :(得分:3)

您是否尝试过良好的语法:

oncomplete="#{rich:component('firstPopup')}.hide();#{rich:component('confirmPopup')}.hide();"