我需要编写一个comboBox,它在change事件和调用上调用一个支持bean方法。处理完这个方法后,我需要显示一个弹出窗口。复杂性在于我需要显示valueChangeListener的popup oncomplete事件。但是rich:comboBox不支持oncomplete事件。我试着把代码写成:
<rich:comboBox value="#{myBean.myObj.name}"
defaultLabel="Please Select" status="defaultStatus"
valueChangeListener="#{myBean.validateNewValue}"
oncomplete="if(#{myBean.showPopup}) #{rich:component('popUpPanel')}.show(); return false;" >
<f:selectItems value="#{myBean.nameList}" />
<a4j:support event="onchange" ajaxSingle="true" reRender="errTable,popUpPanel" />
<a4j:support event="oncomplete" ajaxSingle="true" reRender="errTable,popUpPanel" />
</rich:comboBox>
但是由于comboBox不支持oncomplete事件,因此不可能。谁能帮助我找出在这种情况下可以做些什么?或者是否有任何解决方法可以将对oncomplete事件的支持添加到comboBox?
答案 0 :(得分:3)
oncomplete
属性位于<a4j:support>
,而不是输入组件。只需将它移到那里并摆脱永远不会被解雇的<a4j:support event="oncomplete">
。
<rich:comboBox value="#{myBean.myObj.name}"
defaultLabel="Please Select" status="defaultStatus"
valueChangeListener="#{myBean.validateNewValue}">
<f:selectItems value="#{myBean.nameList}" />
<a4j:support event="onchange" ajaxSingle="true" reRender="errTable,popUpPanel"
oncomplete="if(#{myBean.showPopup}) #{rich:component('popUpPanel')}.show();" />
</rich:comboBox>