1

変更イベントでバッキング Bean メソッドを呼び出すコンボボックスを作成する必要があり、このメソッドを処理した後、ポップアップを表示する必要があります。複雑さは、valueChangeListener のポップアップ oncomplete イベントを表示する必要があるところにあります。ただし、oncomplete イベントは rich:comboBox ではサポートされていません。私は次のようにコードを書き込もうとしました:

    <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 に答える