Чтобы сохранить работу пользователя, я сохраняю несколько фильтров столбцов в хранилище сессии. Недавно был добавлен Enterprise Set Filter, и он работает почти нормально.
Единственная проблема состоит в том, что пустые столбцы не берутся, когда я добавляю их обратно в фильтр с помощью setFilterModel () из API.
Я сделал следующее:
Пользователь добавляет новый фильтр Set и выбирает (пробелы) в качестве значения. Фильтр был изменен, и событие (filterChanged) было запущено. Я получаю текущий фильтр из API с помощью api.getFilterModel () и сохраняю результат в виде строки JSON с JSON.stringify (currentFilter) в хранилище сессии.
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]
}
}
Но привязка к нулю не работает, если я применяю фильтр. Я знаю, что JSON.parse не добавляет нуль в массив, поэтому я попытался добавить ноль вручную, чтобы получить тот же результат.
Как я могу сохранить и применить нулевые значения в установленном фильтре?
Спасибо!