selectBooleanCheckbox ajax事件触发但从不执行侦听器

时间:2012-08-24 13:55:09

标签: ajax listener

selectBooleanCheckbox ajax事件触发但从不执行侦听器。 如果我删除c:forEach并且只是调用列表中的第一个就可以了。

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

注释: graphFilter是一个列表,其中容器具有用于检查和描述的集合/获取。 controller是一个viewscoped托管bean。 addMessage公共函数,为growl发送消息。 一切都是一样的。

<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>

1 个答案:

答案 0 :(得分:0)

您应该使用p:列包装组件:

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

但用p:dataList替换整个结构会更优雅。