h:selectBooleanCheckbox没有触发a4j:ajax监听器在rich:datatable中首次点击

时间:2012-06-25 19:08:29

标签: jsf-2 richfaces

第一次检查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>

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我找到了上述问题的解决方案。

问题将是您的组件没有id或对象或设置的值未被反映。另一个问题是内在形式。

解决方案是...... 为所有组件设置id,如果未在ajax请求中反映这些值,则渲染为其设置值的组件。表格内没有表格。

希望它能够奏效......

这是一篇非常古老的帖子。仍然可能对某人有用。

答案 1 :(得分:-1)

以这种方式试试

<h:selectBooleanCheckbox id="selectRoleCheckbox" value="#{roleItem.selectRole}"         
  <a4j:support event="onchange" action="#{authorizationBean.selectRoleCheckboxListener}"/>
</h:selectBooleanCheckbox>

希望它有效..