1

我需要编写一个组合框,它在更改事件上调用支持 bean 方法,在处理此方法后,我需要显示一个弹出窗口。复杂性在于我需要在 valueChangeListener 的完整事件上显示弹出窗口。但是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 事件的支持?

4

1 回答 1

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>
于 2013-09-13T13:15:54.120 回答