Jsf 2 Primefaces数据表行选择和多个复选框选择不起作用

Jsf 2 Primefaces数据表行选择和多个复选框选择不起作用,jsf-2,primefaces,Jsf 2,Primefaces,我使用的是primeface 3.5,在这里我可以找到选择和取消选择或行选择的复选框,它们完全独立工作。当我尝试同时进行行选择和复选框选择时,行选择事件没有触发。有人能为我澄清一下吗 行选择不起作用,检查所有事件是否起作用 <p:dataTable id="myBookDTable" var="car" value="#{myBean.pageViews}" paginatorPosition="bottom" paginator="true" rows="30" scrollable="

我使用的是
primeface 3.5
,在这里我可以找到选择和取消选择或行选择的复选框,它们完全独立工作。当我尝试同时进行行选择和复选框选择时,行选择事件没有触发。有人能为我澄清一下吗

行选择不起作用,检查所有事件是否起作用

<p:dataTable id="myBookDTable" var="car" value="#{myBean.pageViews}" paginatorPosition="bottom" paginator="true" rows="30" scrollable="true" scrollHeight="400" scrollRows="30" paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}" rowsPerPageTemplate="30,50,100"rowKey="#{car.carID}" rowIndexVar="rowIndex" draggableColumns="true" lazy="true">

<p:ajax event="rowSelect" listener="#{myBean.onRowSelect}" update="certainpart"
                                async="true"/>
<p:ajax event="rowSelectCheckbox" listener="#{myBean.rowSelectCheckbox}"/>
<p:ajax event="rowUnselectCheckbox" listener="#{myBean.rowUnselectCheckbox}"/>

<p:ajax event="rowUnselect" listener="#{myBean.rowUnselect}"/>

<p:column  width="30" selectionMode="multiple" style="width:2%" />

</p:datatable>

在您的
数据表
标记中, 用这个

   <p:ajax event="rowSelectCheckbox" update="someComponent" />
  <p:ajax event="rowUnselectCheckbox" update="someComponent" />
  <p:ajax event="rowSelect" update="someComponent" />
  <p:ajax event="rowUnselect" update="someCompoent" />
  <p:column selectionMode="multiple" style="width:4%" />


您需要触发这四个ajax事件,并确保将列
selectionMode
设置为
multiple

对于列标题事件,primeface/jsf中存在不同的标题名称: “切换选择”。 您可以这样使用:

<p:ajax event="toggleSelect" update="@this" process="@this" />

试试这个:

<p:ajax event="toggleSelect" update=":form:component" partialSubmit="true" />

资料来源:


PrimeFaces 4.0用户指南。-Ajax行为事件

您面临的问题是什么?请发布您的代码和您面临的确切问题。您确定只有在同时使用它们时才会出现问题吗?@LiranElisha:是的,我只是在使用这两个选项时才遇到这个问题。当您选择单个行时,这两个选项都起作用,而当您选中列标题复选框时,则不起作用!这很好,但是我如何才能知道我是刚刚选择了“selectAll”还是“unselectAll”?