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

Posted

技术标签:

【中文标题】Primefaces数据表行选择和多个复选框选择不起作用【英文标题】:Primefaces data table Row selection and multiple checkbox selection not working 【发布时间】:2013-06-23 03:07:17 【问题描述】:

我正在使用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   selectionMode="multiple" style="width:2%" />

</p:datatable>

【问题讨论】:

你遇到了什么问题? 请发布您的代码和您面临的确切问题 您确定只有在同时使用它们时才会出现问题吗? @LiranElisha : 是的,我只在同时使用这两种方法时才会遇到问题 【参考方案1】:

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

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

【讨论】:

这很好,但是我如何才能知道我是做了“selectAll”还是“unselectAll”?【参考方案2】:

在您的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

【讨论】:

当您选择单个行时有效 - 而不是当您选择列标题复选框时!【参考方案3】:

试试这个:

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

来源:

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

【讨论】:

以上是关于Primefaces数据表行选择和多个复选框选择不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Primefaces Accordion + Datatable过滤器/多项选择无法按预期工作

Primefaces:从p:dataTable中的行选择中排除列

根据行条件隐藏 p:dataTable 选择复选框

在PrimeFaces数据表中强制选择行

标题和行中带有复选框的Jquery数据表:选择所有复选框不起作用

根据多个选择/隐藏元素更改表格行颜色