#angular #ag-grid
#angular #ag-grid
Вопрос:
Чтобы сэкономить работу пользователя, я сохраняю несколько фильтров столбцов в sessionstorage. Недавно был добавлен фильтр Enterprise Set, и он работает почти нормально. Единственная проблема заключается в том, что пустые столбцы не берутся, когда я добавляю их обратно в фильтр с помощью setFilterModel() из api.
Я сделал следующее:
Пользователь добавляет новый Установленный фильтр и выбирает (пробелы) в качестве значения. Фильтр был изменен, и было запущено событие (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 не добавляет null в массив, поэтому я попытался добавить null вручную, чтобы получить тот же результат.
Как я могу сохранить и применить нулевые значения в заданном фильтре?
Спасибо!
Комментарии:
1. Обнаружено, что это окончательно исправлено в последней версии AG Grid Enterprise 27.0.1