Jsf 2 h:selectBooleanCheckbox第一次单击时不在rich:datatable内部触发a4j:ajax侦听器

Jsf 2 h:selectBooleanCheckbox第一次单击时不在rich:datatable内部触发a4j:ajax侦听器,jsf-2,richfaces,Jsf 2,Richfaces,第一次选中h:selectBooleanCheckBox时,侦听器不会被触发。再次检查它,确实会激发侦听器。我还尝试了为h:selectBooleanCheckBox执行valueChangeListener=“selectRoleCheckboxChangeListener”属性,结果相同。它将在第二次和随后的点击中起作用。我想让这火一点就烧起来。思想?谢谢 <rich:dataTable id="roleTable" value="#{roleBean.displayedRo

第一次选中
h:selectBooleanCheckBox
时,侦听器不会被触发。再次检查它,确实会激发侦听器。我还尝试了为
h:selectBooleanCheckBox
执行
valueChangeListener=“selectRoleCheckboxChangeListener”
属性,结果相同。它将在第二次和随后的点击中起作用。我想让这火一点就烧起来。思想?谢谢

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

选择角色
这样试试看

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

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

我也有同样的问题。我找到了解决上述问题的办法

问题是组件没有id,或者对象或值集没有得到反映。另一个问题是内在形式

解决办法是。。。 为所有组件设置id,如果这些值没有反映在ajax请求中,则呈现为其设置值的组件。不要在表单中包含表单

希望它能起作用


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

我也有同样的问题。我找到了解决上述问题的办法

问题是组件没有id,或者对象或值集没有得到反映。另一个问题是内在形式

解决办法是。。。 为所有组件设置id,如果这些值没有反映在ajax请求中,则呈现为其设置值的组件。不要在表单中包含表单

希望它能起作用


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

尝试将事件设置为
onchange
而不是
单击
感谢您的回复。我尝试了event=“change”,但行为没有改变。我正在尝试消除绑定,看看这是否有帮助。尝试将事件设置为
onchange
而不是
单击
感谢您的响应。我尝试了event=“change”,但行为没有改变。我试图消除绑定,看看这是否有帮助。这是RichFaces4.2,所以我使用a4j:ajax。这是从RichFaces 3.3.1的迁移。以前使用a4j:支持。这与组件中的“valueChangeListener”和a4j:support中的“event=onclick”一起工作。这是RichFaces 4.2,所以我使用a4j:ajax。这是从RichFaces 3.3.1的迁移。以前使用a4j:支持。这与组件中的“valueChangeListener”和a4j:support中的“event=onclick”一起工作。