JSF richfaces:点击a4j:commandButton时更新(rerender)元素+关闭弹出窗口

时间:2014-04-28 15:44:37

标签: jsf richfaces

我的弹出窗口中有一个a4j:commandButton。点击我想隐藏我的弹出窗口并重新渲染一些组件。

<a4j:commandButton type="button" styleClass="left" value="#{bean.value}"
                                     actionListener="#{bean.action}"
                                     render="updComponent"
                                     oncomplete="#{rich:component('popup')}.hide()"/>

在这种情况下,组件被重新呈现,但弹出窗口没有隐藏。

如果我使用rerender="updComponent"而不是render="updComponent",则弹出窗口会隐藏,但元素不会被重新渲染。

如果我使用而不是oncomplete="#{rich:component('popup')}.hide()"这个:

<rich:componentControl target="deactivateIp" event="oncomplete" operation="hide"/>

弹出窗口没有隐藏,组件没有重新渲染。

我做错了什么以及如何实现我的目标?

1 个答案:

答案 0 :(得分:0)

我使用过onbegin而不是oncomplete,它对我有用。 如果我没有弄错,那就是jsf bug:渲染oncomplete事件后没有触发。

<a4j:commandButton type="button" styleClass="left" value="#{bean.value}"
                                     actionListener="#{bean.action}"
                                     render="updComponent"
                                     onbegin="#{rich:component('popup')}.hide()"/>

也许不是最好的解决方案,但我没有发现任何其他解决方案。