我正在使用primefaces v5.3 dataTable,liveScroll =“true”和selectionMode =“multiple”。 标题复选框仅选择可见行,当我向下滚动时,新行显示为未选中。 我想要标题复选框来选择所有行:可见和不可见。 仅选择可见行是没有意义和无用的。 有可能解决吗?
我尝试通过处理“toggleSelect,rowSelectCheckbox和rowUnselectCheckbox”事件将所有表数据添加到选择中。它适用于后端,但无论如何都在UI行中取消选择。
答案 0 :(得分:0)
使用此脚本替换primefaces的原始updateData函数
PrimeFaces.widget.DataTable.prototype.updateData = (function() {
var cached_function = PrimeFaces.widget.DataTable.prototype.updateData;
return function() {
var reselectAll = (this.selection != undefined && (this.selection[0] === '@all' || this.selection.length === this.getTbody()[0].getElementsByTagName('tr').length);
var result = cached_function.apply(this, arguments);
if (reselectAll) {
this.selectAllRows();
}
return result;
};
})();
将自动选择表上新加载的行(仅限客户端可见的行)