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

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


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

wKiom1aPlz2Dz3CNAAKKG6E9hAM990.jpg

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

wKioL1aPl5OQg49PAADCLRdITeI125.jpg


补充:

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

wKioL1aTXAbBN0wAAAITIs9SLJI801.jpg


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

wKiom1aTXIyQZ_NUAAEur13mr_I541.jpg


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

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


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

替代方案:

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

wKiom1anLCexH9qKAAEnIXerSME457.jpg