【问题标题】:Tabulator.js: get/select rows on current pageTabulator.js:获取/选择当前页面上的行
【发布时间】:2019-01-29 12:08:16
【问题描述】:

我正在使用一个很棒的制表器插件来管理表格数据,API 非常清晰可靠,但我不能做一件非常简单的事情:获取/选择当前页面上的所有行。

自定义行选择如下所示:

table.selectRow(table.getRows().filter(row => <<Custom Selection>>);

自定义选择必须尊重当前页面,但我无法从哪里获取它。

也许我错过了什么?

【问题讨论】:

    标签: javascript pagination tabulator


    【解决方案1】:

    没有办法直接从制表符中做到这一点,但用一点 JavaScript 应该很容易做到。

    首先,您要获取该页面上可见的行:

    var pageRows = table.getRows(true);
    

    那你要获取选中的行

    var selectedRows = table.getSelectedRows();
    

    然后您想查找两个数组中都存在的行,这些将是该页面上的选定行:

    var rows = selectedRows.filter(value => -1 !== pageRows.indexOf(value));
    

    【讨论】:

    • 嗨,奥利,感谢您的回复!我的问题有点不同。我只想选择(例如使用按钮)当前页面上的行。所以我没有初始选择并且 .getSelectedRows() 返回一个空数组。 AFAIK .getRows(true) 也返回所有被过滤的行,而不是页面上的可见行。
    • 我发现 table.rowManager.getDisplayRows() 正是我需要的。用这个方法可以吗?
    • 好的,我明白了,我删除了我的“答案”。但是有什么安全的方法可以让它工作吗?分页表格处理是相当普遍的事情。
    【解决方案2】:

    假设您的索引的列名是“id”,您可以执行以下操作:

    var selectedData = table.getSelectedData();
    jQuery.map(selectedData, function(value, index) {
        console.log(value.id);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-07
      • 2011-06-10
      • 2012-12-04
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多