第一次检查h:selectBooleanCheckBox
时,不会触发监听器。再次检查,确实会激活听众。我还尝试为valueChangeListener="selectRoleCheckboxChangeListener"
执行h:selectBooleanCheckBox
属性并获得相同的结果。它将适用于第二次和随后的点击。我想在第一次点击时发生火灾。想法?感谢
<rich:dataTable id="roleTable"
value="#{roleBean.displayedRoles}"
var="roleItem"
>
<rich:column
id="selectRoleCheckboxColumn"
>
<f:facet name="header">Select Role</f:facet>
<h:selectBooleanCheckbox
id="selectRoleCheckbox"
value="#{roleItem.selectRole}"
binding="#{roleBean.selectRoleCheckbox}"
>
<a4j:ajax
event="click"
listener="#{authorizationBean.selectRoleCheckboxListener}"
/>
</h:selectBooleanCheckbox>
</rich:column>
</rich:dataTable>
答案 0 :(得分:0)
我遇到了同样的问题。我找到了上述问题的解决方案。
问题将是您的组件没有id或对象或设置的值未被反映。另一个问题是内在形式。
解决方案是...... 为所有组件设置id,如果未在ajax请求中反映这些值,则渲染为其设置值的组件。表格内没有表格。
希望它能够奏效......
这是一篇非常古老的帖子。仍然可能对某人有用。
答案 1 :(得分:-1)
以这种方式试试
<h:selectBooleanCheckbox id="selectRoleCheckbox" value="#{roleItem.selectRole}"
<a4j:support event="onchange" action="#{authorizationBean.selectRoleCheckboxListener}"/>
</h:selectBooleanCheckbox>
希望它有效..