【问题标题】:How to get filtered rows in ag-grid?如何在 ag-grid 中获取过滤的行?
【发布时间】:2017-09-18 10:06:09
【问题描述】:

我有一个带有过滤选项的ag-Grid

如何在ag-Grid中获取过滤后的行(不是选中的)?

【问题讨论】:

    标签: javascript ag-grid


    【解决方案1】:

    您可以为此使用 forEachNodeAfterFilter(callback) api 方法。

    请参阅https://www.ag-grid.com/javascript-grid-api 了解所有可用的 API 调用,包括各种 forEachXXX 方法。

    【讨论】:

    • 没有办法吗?我必须使用 foreach 来获取这些节点?
    • 嗨,是的,恐怕你必须遍历节点。如果您想对过滤后的节点进行整体处理,则需要在迭代时建立一个集合
    • 自四月以来有什么变化吗?我们还需要 foreach 来获取更新的数据集吗?
    【解决方案2】:

    这花了我很长时间,所以我在这里发帖。使用 onFilterChanged() 访问过滤后的行,或过滤后的 + 选定行。传递给onFilterChanged() 的事件可以这样使用(Typescript React 中的示例)

    onFilterChanged = ev => {
      if (ev?.api?.rowModel?.rowsToDisplay) {
        this.setState({ selectedRows: ev?.api?.rowModel?.rowsToDisplay.filter(node => node.isSelected()) });
      }
    };
    

    【讨论】:

    • 仅供参考,rowModel 是私有的,所以这可能会在未来的版本中改变。
    【解决方案3】:

    以@sean-landsman 的回答为基础,以下是如何使用forEachNodeAfterFilter(callback) 方法的示例:

        let rowData = [];
        gridApi.forEachNodeAfterFilter(node => {
          rowData.push(node.data);
        });
    

    【讨论】:

      猜你喜欢
      • 2017-09-18
      • 2020-10-04
      • 2019-08-31
      • 2017-04-18
      • 2016-01-22
      • 2020-12-01
      • 2021-07-29
      • 2016-09-26
      • 2020-06-22
      相关资源
      最近更新 更多