【问题标题】:Aggrid How to trigger forEachNodeAfterFilter after rowData has changed without changing the filter stringAggrid 如何在 rowData 更改而不更改过滤器字符串后触发 forEachNodeAfterFilter
【发布时间】:2021-09-20 15:10:40
【问题描述】:

我有一个自定义标签,在其中显示过滤的行数(“当前显示 y 个结果中的 x 个”)。 当我更改过滤器字符串时效果很好,因为我使用了

(filterChanged)="onFilterChanged($event)"

在我的 ts 文件中:

onFilterChanged() {
    let filteredRowCount = 0;
    this.gridApi.forEachNodeAfterFilter(() => {
        filteredRowCount++;
    });
    this.numberToShow = filteredRowCount;
}

(我绑定的变量是numberToShow)。

我有一个刷新按钮,它会导致 this.rowData 得到更新。如果用户应用了过滤器并刷新了数据,我无法通过编程方式知道当前显示了多少行。

有什么建议吗?

谢谢!

【问题讨论】:

    标签: ag-grid


    【解决方案1】:

    您可以通过在每个列的filterParams 中添加newRowsAction: 'keep' 来解决此问题。
    然后点击刷新按钮,你应该添加

    if (this.gridApi.isAnyFilterPresent()) {
      this.gridApi.onFilterChanged() 
    }
    

    这应该会强制触发您的 filterChanged 逻辑

    【讨论】:

    • 谢谢,对我的发展很有用
    【解决方案2】:

    如果其他人在这里结束,agTotalAndFilteredRowCountComponent 状态栏组件可以开箱即用(企业)https://www.ag-grid.com/javascript-data-grid/status-bar/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-22
      • 2018-10-17
      • 1970-01-01
      • 2013-04-11
      • 1970-01-01
      • 2019-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多