如何在 ag-grid 中获得正确的过滤器模型?

Posted

技术标签:

【中文标题】如何在 ag-grid 中获得正确的过滤器模型?【英文标题】:How to get the right Filter Model in ag-grid? 【发布时间】:2020-11-14 19:00:45 【问题描述】:

我想显示用户当前选择的过滤器。所以我正在使用 onFilterChanged 回调函数获取过滤器模型:

onFilterChanged(params) 
    const filterModel = this.gridApi.getFilterModel();
    console.log(filterModel);
  

一切正常,除了一个场景,我们过滤第一列并尝试过滤第二列。例如,如果您在 plunker 示例中看到:

https://plnkr.co/edit/X6LlP2XIOaEeeW7I?preview

我将第一列过滤为 Michael Phillips 和 Abhinav Bindra,然后我得到 filterModel 为

athlete:
    filterType: "set"
    values: Array(2)
        0: "Abhinav Bindra"
        1: "Michael Phelps"
        length: 2

这是正确的。然后我尝试过滤第二列,国家,然后我得到 filterModel 为

athlete:
    filterType: "set"
    values: (2) ["Abhinav Bindra", "Michael Phelps"]
country: values: Array(109), filterType: "set"

这是不正确的。正如我期望获得的国家价值为印度或美国,而不是整个 109 个国家/地区。

有趣的是,过滤器 UI 仅将这两个国家印度和美国显示为复选框。

我如何获得正确的过滤器模型,以便在我的自定义组件中显示?

编辑:如果我使用浮动过滤器组件,则值会正确显示在浮动过滤器中。我想获得那个浮动过滤器组件的模型。

任何指针将不胜感激。 提前致谢!!

【问题讨论】:

【参考方案1】:

使用gridOptions.api.getFilterInstance('gold').getValueModel().availableValues 获取所有可用值。

gridOptions.api.getFilterInstance('your column name here').查看下面的截图。

【讨论】:

以上是关于如何在 ag-grid 中获得正确的过滤器模型?的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以在服务器端模型 ag-grid 中实现快速过滤器?

Ag-grid 隐藏过滤列

如何通过 ag-grid 将过滤器保留在 cookie 中?

如何取消 Ag-grid OnFilterChanged 事件?

在一列上设置过滤器和提供的过滤器 - Ag-Grid

如何在服务器端/无限行模型中使用快速过滤器?