农业网格企业设置过滤器“(空白)”-绑定不起作用

时间:2019-04-23 06:12:04

标签: angular ag-grid

为了保存用户工作,我在sessionstorage中保存了几个列过滤器。最近,添加了企业设置过滤器,它几乎可以正常工作。 唯一的问题是,当我使用api中的setFilterModel()将空列添加回过滤器时,不会占用空列。

我做了以下事情:

用户添加一个新的“设置过滤器”并选择(空白)作为值。过滤器已更改,并且触发了(filterChanged)事件。我使用api.getFilterModel()从api获取当前过滤器,并使用session.age中的JSON.stringify(currentFilter)将结果保存为JSON字符串。

getFilter() {
const currentFilter = this.gridOptions.api.getFilterModel();
if (Object.keys(currentFilter).length !== 0) {
  sessionStorage.setItem('filterKey', JSON.stringify(currentFilter));
 }
}

如果用户再次打开页面,则应再次接管过滤器。

setFilter() {
const currentFilter = sessionStorage.getItem('filterKey');
if (currentFilter) {
  const filter = JSON.parse(currentFilter);
  this.gridOptions.api.setFilterModel(filter);
  this.gridOptions.api.onFilterChanged();
 } 
}

(rowDataChanged)事件调用了此方法。

这可以处理文本,日期,数字和设置的过滤器,但空白值除外。 如果选择空白值,我将得到以下模型:

{
"column" : "nameOfColumn": {
    "filterType": "set",
    "values": [null]
  }
}

但是如果我应用过滤器,则绑定到null无效。我知道JSON.parse不会将null添加到数组中,因此我尝试手动添加null以得到相同的结果。

如何在设置的过滤器中保存和应用空值?

谢谢!

0 个答案:

没有答案