【问题标题】:How to get the column name on clearing the filter in AGGRID?如何在清除 AG GRID 中的过滤器时获取列名?
【发布时间】:2020-12-01 09:27:46
【问题描述】:

我需要清除已保存的过滤器。为此,我需要列名。

onFilterChanged: function(event){
var newObj = {}
 newObj =  gridOptions.api.getFilterModel();}

在这里,我在设置过滤器时会获取过滤器详细信息以及列名。但是如果我清除过滤器如何获取列名

如果我清除过滤器,gridOptions.api.getFilterModel(); 为空。

有什么解决方法吗?

【问题讨论】:

  • 能否请您发布代码的完整上下文?没有这个,我能帮上忙的就是请您检查 gridOptions.getAllGridColumns()。这将按照网格中显示的列的顺序返回所有列。此外,您可以在 ag-grid.com/javascript-grid-column-api 上查看用于 ag-grid 的 Columns API。干杯!!
  • 添加了更改,如果我清除过滤器,我需要特定的清除过滤器列 name.gridOptions.getAllGridColumns() 将返回所有列。我需要过滤列

标签: javascript ag-grid


【解决方案1】:

当我们删除过滤条件时,ag grid 将过滤模型设置为 null,因此 gridOptions.api.getFilterModel(); 什么也不返回。

要记住(通过 UI 或以编程方式)触摸了哪个过滤器,我们需要监听 onFiltermodified 事件,因为 ag grid 首先修改过滤器(当我们删除条件时)然后应用它(更改)。这样您就可以收听此事件并可以将 columnId 保存在某个变量中,因为 onFilterChange 事件跟随此事件。

此解决方法失败的唯一情况是您以编程方式设置/清除设置过滤器,因为 ag grid 跳过 filterModified 事件并直接调用 Filterchanged 事件。但我希望如果您以编程方式执行某些操作,那么您已经拥有要添加或删除过滤器的列列表。

    onFilterModified : function(params){
     // note : set filter does not trigger this event if filtering is done using api
      filtercolId = params.column.colId; // save the colID
    },
    onFilterChanged : function(params){
    //if filter is removed then gridOptions.api.getFilterModel(); will return empty so 
    //use filtercolId which was stored during filterModified event.
    console.log(params);
    }

【讨论】:

    猜你喜欢
    • 2017-09-18
    • 2020-07-15
    • 2018-09-02
    • 2017-09-18
    • 1970-01-01
    • 2017-04-18
    • 2020-06-11
    • 2016-01-22
    • 2020-10-04
    相关资源
    最近更新 更多