2

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

2 回答 2

0

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

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

解决方案是...为所有组件设置 id,如果值没有反映在 ajax 请求上,则呈现设置了值的组件。表格内没有表格。

希望它应该工作......

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

于 2014-09-26T11:33:06.353 回答
-1

试试这个方法

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

希望它有效..

于 2012-06-29T05:59:53.637 回答