table当rowSelectMode="new",<p:column selectionMode="multiple"时,先点中多行CheckBox,再选择行,之前选择的checkbox都会被取消。

想要不取消,方案:修改primefaces的jar内的primefaces.js。


找到此段代码(此图代码已经格式化过)

Primefaces Table 选中行时不消除已选中的Checkbox_row

再删除if(a)的以下代码即可。

Primefaces Table 选中行时不消除已选中的Checkbox_primefaces_02


补充:

选中行时,默认会选中checkbox,删除以下选中代码即可去除该功能。

Primefaces Table 选中行时不消除已选中的Checkbox_primefaces_03


选中checkbox,默认会高亮行,删除以下选中代码即可去除该功能。

Primefaces Table 选中行时不消除已选中的Checkbox_table_04


=====================================>

以上方法存在bug,checkbox勾选多项后,再单击行高亮一条数据,页面上正常,但是后台selection bean还是会变成当前选中行记录,而不是之前checkbox选中的多条记录。


=====================================》

替代方案:

修改Datatable属性rowSelectMode="checkbox",再给行加上hover样式,方法如下(添加选中代码):

Primefaces Table 选中行时不消除已选中的Checkbox_primefaces_05