在 PrimeFaces 数据表中选择单行时如何避免取消选择?

How to avoid unselection when selecting a single row in PrimeFaces datatable?

以列表people=["Person 1"、"Person 2"、"Person 3"]为例,还有一个名为selectedPeople的空列表,执行以下步骤必须完成:

1) Select 一行。结果:"Person 2" 添加到 selectedPeople

列表selectedPeople=["Person 2"]

2) Select 另一行。结果:"Person 3" 添加到 selectedPeople

列表selectedPeople=["Person 2","Person 3"]

3) Select 只有其中一行。结果:"Person 2" 从 selectedPeople 中删除。

列表selectedPeople=["Person 3"]


问题:PrimeFaces dataTable 的默认行为是取消select 其他 selected 行,如果我单击一个他们中的。告诉用户在 table.

中对 select 条记录按住 Ctrl 或 Shift 键并不是最好的做法

到目前为止我所做的:http://pastebin.com/qHvnZPiY


要避免取消选择,只需使用属性rowSelectMode="add"(但如果要取消选择,则需要使用ctrl+click)

我们最后使用的解决方案是把rowSelectMode="checkbox"所以只有当我点击第一列时才会选择该行<p:column selectionMode="multiple" />

然后将侦听器用于事件 toggleSelectrowSelectCheckboxrowUnselectCheckbox

来源:www.primefaces.org/docs/guide/primefaces_user_guide_5_2.pdf