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

ag-grid - How to get values which are selected by user for filtering

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

用户可以 select/deselect 值,网格根据这些值立即刷新过滤数据。我可以通过 filterManager.allFilters 获取过滤器列名称,但我还需要用户选择的值进行过滤。我做不到。

看看我创建的插件:Get applied values for filter

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

我正在使用 filterChanged 活动。

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

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