ag-grid-如何获取用户选择的用于过滤的值

时间:2019-04-10 10:09:01

标签: angular ag-grid

在ag-grid中,我在每列上启用了列过滤器。现在,当用户单击它时,它会显示一个复选框列表,在该列下显示所有不同的值。

用户可以选择/取消选择值,网格将立即根据这些值刷新过滤后的数据。我可以通过filterManager.allFilters获取过滤器列名称,但我还需要用户选择用于过滤的值。我无法实现这一目标。

1 个答案:

答案 0 :(得分:1)

看看我创建的小品: Get applied values for filter

更改country列的过滤器选择并检查控制台。

我正在使用filterChanged事件。

我们在Promise中得到了params.api.filterManager.allFilters.<column>.filterPromise,您可以用下面的方式识别它。

onFilterChanged(params) {
   if (!params.api.filterManager.allFilters.country) return;

   params.api.filterManager.allFilters.country.filterPromise.then((result) => {
    console.log('##### Selected Values #####')
    const values = result.virtualList.model.model.selectedValuesMap;
    const selectedValues = [];
    for(var key in values) {
      selectedValues.push(key);
    }
    console.log(selectedValues.join(', '));
  });
}

参考:Sort & Filter