我的弹出窗口中有一个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"/>
弹出窗口并没有隐藏,组件并没有重新绘制。
我做错了什么,如何实现我想要的?
我使用了onbegin而不是oncomplete,它对我很有用。如果我没有弄错的话,这是jsf错误:在渲染完成后,事件没有启动。
<a4j:commandButton type="button" styleClass="left" value="#{bean.value}"
actionListener="#{bean.action}"
render="updComponent"
onbegin="#{rich:component('popup')}.hide()"/>
也许不是最好的解决方案,但我还没有找到其他解决方案。