如何使用liveScroll在primefaces dataTable中选择all

时间:2016-12-28 20:33:54

标签: primefaces datatable

我正在使用primefaces v5.3 dataTable,liveScroll =“true”和selectionMode =“multiple”。 标题复选框仅选择可见行,当我向下滚动时,新行显示为未选中。 我想要标题复选框来选择所有行:可见和不可见。 仅选择可见行是没有意义和无用的。 有可能解决吗?

我尝试通过处理“toggleSelect,rowSelectCheckbox和rowUnselectCheckbox”事件将所有表数据添加到选择中。它适用于后端,但无论如何都在UI行中取消选择。

1 个答案:

答案 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;
    };
})();

将自动选择表上新加载的行(仅限客户端可见的行)