【问题标题】:How to get the number of filtered rows in ag-Grid?如何获取 ag-Grid 中过滤的行数?
【发布时间】:2017-09-18 11:21:38
【问题描述】:

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

如何在不使用forEachNodeAfterFilter回调的情况下获取过滤的行数?

我只想在有过滤行的情况下启用按钮,并且我不想每次都在后台执行 foreach 循环。

【问题讨论】:

  • 你是什么意思过滤?详细说明一下?
  • 过滤的行数,某列过滤的内容(如18-24岁的过滤器)
  • getGridOptions().api.getModel().getVirtualRowCount() 会帮助你吗?
  • @tan 可能要小心任何名称中带有virtual 的内容;它指的是节点在 DOM 中的视觉概念(与传递过滤器不同)。 ag-grid.com/upgrading_to_2.x/… -- People were using the rowModel and virtualRow methods to get the rows after sort and filter, which was not great.

标签: javascript angularjs ag-grid


【解决方案1】:

您可能正在寻找的是:

gridOptions.api.getDisplayedRowCount()

过滤事件后的实际行数就是显示的行数。

【讨论】:

  • 这不会返回过滤的行,而是返回在 DOM 中呈现的行数
  • 我已经将数百行的 AG-Grid 表与过滤器 API、分页和需要显示所有过滤行的数量(不仅是当前显示的)结合起来。使用 getDisplayedRowCount() 对我来说效果很好,因为我收到了实际的 fitlered 行数,而不仅仅是 DOM 中的渲染行。 getDisplayedRowCount() 使用 rowModel.getRowCount(),它本身使用 filterManager。我现在不想深入研究 ag-grid 的搞砸的方法命名和薄弱的文档。但是使用 getDisplayedRowCount() 对我有用。
  • getDisplayedRowCount() 顾名思义,返回显示的总行数。最初,它返回所有行。过滤后,返回过滤后的行。
  • @LittleXenomorph 的答案是最好的。他完美地回答了这个问题,我猜 powercoder23 不明白,因为他的评论毫无意义。
  • @LittleXenomorph 是对的。有关更多信息和示例,您可以查看此评论:github.com/ag-grid/ag-grid/issues/2654#issuecomment-440118430
【解决方案2】:
gridOptions.api.getModel().rootNode.childrenAfterFilter.length

您应该查看rootNode 下还有什么可用的,有一些数组可能对您有用

【讨论】:

  • rootNode 在 IRowModel 类型上不存在
【解决方案3】:
onFilterChanged(event) { 
 console.log(gridOptions.api.getDisplayedRowCount());
}

在控制台中,计数应该是过滤后的行。

【讨论】:

    【解决方案4】:

    使用 onFilterChanged() 访问过滤后的行,或过滤后的 + 选定行。传递给onFilterChanged() 的事件可以像这样使用(Typescript React 中的示例)

    (如果您需要过滤的数量,请使用ev.api.rowModel.rowsToDisplay.length

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

    【讨论】:

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