0

selectBooleanCheckbox ajax イベントが発生しますが、リスナーは実行されません。c:forEach を削除して、リストの最初のものを呼び出すだけで機能します。

<p:selectBooleanCheckbox value="#{Controller.graphFilter.get(0).checked}" >
       <p:ajax listener="#{Controller.addMessage}" />  
</p:selectBooleanCheckbox> 

注: graphFilter は、コンテナーがチェックおよび説明のセット/取得を行うリストです。コントローラーはビュースコープのマネージド Bean です。唸り声のメッセージを入れる addMessage パブリック関数。すべてが同じ形です。

<h:form id="form" prependId="false">
<p:growl id="growl" showDetail="true"/>

<c:forEach items="#{Controller.graphFilter}" var="Gc">
     <h:outputText value="#{Gc.description}" />  
         <p:selectBooleanCheckbox value="#{Gc.checked}"  >
            <p:ajax listener="#{Controller.addMessage}"/>
         </p:selectBooleanCheckbox>                                       
</c:forEach>
</h:form>
4

1 に答える 1

0

コンポーネントを ap:column: でラップする必要があります。

<p:column>
    <h:outputText value="#{Gc.description}" />  
        <p:selectBooleanCheckbox value="#{Gc.checked}"  >
            <p:ajax listener="#{Controller.addMessage}"/>
        </p:selectBooleanCheckbox>
</p:column>

ただし、構造全体をp:dataListに置き換えると、より洗練されたものになります。

于 2012-09-02T06:19:24.357 に答える