PrimeFaces datatable在触发行选择事件时不保留复选框选择行

PrimeFaces datatable在触发行选择事件时不保留复选框选择行,primefaces,Primefaces,我有如下要求 带有复选框选择选项和行选择的数据表也保留多重选择 当用户单击复选框时,应选择相应的行,同时,如果数据表的任何行是由row select事件选择的,则应重新选择现有行 所选项目和当前所选内容也会相反 由于工作限制,我无法达到此要求,有人能帮助我达到此要求吗 示例Xhtml: <p:dataTable id="checkboxDT" var="car" value="#{dtSelectionView.cars6}" selection="#{dtSelectionView.se

我有如下要求

带有复选框选择选项和行选择的数据表也保留多重选择

当用户单击复选框时,应选择相应的行,同时,如果数据表的任何行是由row select事件选择的,则应重新选择现有行 所选项目和当前所选内容也会相反

由于工作限制,我无法达到此要求,有人能帮助我达到此要求吗

示例Xhtml:

<p:dataTable id="checkboxDT" var="car" value="#{dtSelectionView.cars6}" selection="#{dtSelectionView.selectedCars}" rowKey="#{car.id}" style="margin-bottom:0">
        <f:facet name="header">
            Checkbox
        </f:facet>
        <p:column selectionMode="multiple" style="width:16px;text-align:center"/>
        <p:column headerText="Id">
            <h:outputText value="#{car.id}" />
        </p:column>
        <p:column headerText="Year">
            <h:outputText value="#{car.year}" />
        </p:column>
        <p:column headerText="Brand">
            <h:outputText value="#{car.brand}" />
        </p:column>
        <p:column headerText="Color">
            <h:outputText value="#{car.color}" />
        </p:column>
        <f:facet name="footer">
            <p:commandButton process="checkboxDT" update=":form:multiCarDetail" icon="ui-icon-search" value="View" oncomplete="PF('multiCarDialog').show()" />
        </f:facet>
    </p:dataTable>
注:

请验证primefaces showcase的默认组件行为

“由于工作限制,我无法达到此要求,有人能帮助我达到此要求吗?”

这不是一个限制,它是按设计的。使用ctrl-click,您可以在单击其他行时添加这些行。但是如果你想改变这种行为,相关的信息就在上面


到您的数据表最有可能做到这一点

请发布#{employeeBean.selectedEmployeeList}的Java代码,以便我们查看。employeeBean的作用域是什么?更好的是,发布一个My employeeBean.java在GroupConversationScope公共无效行选择(员工){this.selectedEmployeeList.add(员工);}公共无效行取消选择(员工){this.selectedEmployeeList.remove(员工);}请编辑您的问题以包含EmployeeBean的完整代码。还要确保学习这个工作示例:我对选择没有问题,所以请继续调试和简化您的用例,直到您弄清楚为止。您的问题中没有可见的示例xhtml…感谢您宝贵的快速响应。现在选择工作正常,但当我取消选择行时,它不会取消选中复选框。这不在您的问题中;-)(使用ctrl键)实际上,您的问题现在是问题的副本。您能否为此提供修补程序或一些解决方案。?我想这是Primefaces 3.5的问题,但我的是更高版本的Primefaces 5.0,我仍然需要启动rowUnselect事件。源代码是开放的。。。下载它,检查它,创建一个补丁。。。或者通过添加
rowSelectMode=“checkbox”
public void onRowSelect(SelectEvent event) {
    FacesMessage msg = new FacesMessage("Car Selected", ((Car) event.getObject()).getId());
    FacesContext.getCurrentInstance().addMessage(null, msg);
}

public void onRowUnselect(UnselectEvent event) {
    FacesMessage msg = new FacesMessage("Car Unselected", ((Car) event.getObject()).getId());
    FacesContext.getCurrentInstance().addMessage(null, msg);
}
rowSelectMode new String Defines row selection mode for multiple selection. Valid values are "new", "add" and "checkbox".
rowSelectMode="add"