我的弹出窗口中有一个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"/>
弹出窗口没有隐藏,组件没有重新渲染。
我做错了什么以及如何实现我的目标?
答案 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()"/>
也许不是最好的解决方案,但我没有发现任何其他解决方案。