ag-grid enterprise Set Filter "(заготовки)" - переплет не работает - PullRequest
0 голосов
/ 23 апреля 2019

Чтобы сохранить работу пользователя, я сохраняю несколько фильтров столбцов в хранилище сессии. Недавно был добавлен 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 не добавляет нуль в массив, поэтому я попытался добавить ноль вручную, чтобы получить тот же результат.

Как я могу сохранить и применить нулевые значения в установленном фильтре?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...