selectBooleanCheckbox ajax事件激发,但侦听器从未执行
selectBooleanCheckbox ajax事件触发,但侦听器从未执行。 如果我删除c:forEach并只调用列表中的第一个,它就会工作selectBooleanCheckbox ajax事件激发,但侦听器从未执行,ajax,listener,Ajax,Listener,selectBooleanCheckbox ajax事件触发,但侦听器从未执行。 如果我删除c:forEach并只调用列表中的第一个,它就会工作 <p:selectBooleanCheckbox value="#{Controller.graphFilter.get(0).checked}" > <p:ajax listener="#{Controller.addMessage}" /> </p:selectBooleanCheckbox>
<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>
您应该用p:列包装组件:
<p:column>
<h:outputText value="#{Gc.description}" />
<p:selectBooleanCheckbox value="#{Gc.checked}" >
<p:ajax listener="#{Controller.addMessage}"/>
</p:selectBooleanCheckbox>
</p:column>
但是,用一个新的结构替换整个结构会更加优雅