Ag-grid сохранение / восстановление состояния фильтра не работает - PullRequest
0 голосов
/ 01 октября 2018

Я использовал Ag-grid в своем приложении и экспериментировал с сохранением и восстановлением табличных фильтров.(Я не использую корпоративную версию Ag-Grid).

Я нашел эту ссылку , где говорится, как я могу сохранять / восстанавливать фильтры

Я пытаюсь сохранить состояние фильтра, а затем нажимаю URL-адрес, из которого таблицаобновил и затем восстановил фильтры

это мой код, в котором я сохраняю и восстанавливаю состояние фильтра

 saveState() {
         window.colState = this.tableOptions.columnApi.getColumnState();
         window.groupState = this.tableOptions.columnApi.getColumnGroupState();
         window.sortState = this.tableOptions.api.getSortModel();
         window.filterState = this.tableOptions.api.getFilterModel();
    }

 restoreState() {
         this.tableOptions.columnApi.setColumnState(window.colState);
         this.tableOptions.columnApi.setColumnGroupState(window.groupState);
         this.tableOptions.api.setSortModel(window.sortState);
         this.tableOptions.api.setFilterModel(window.filterState);
  }

Но я не могу восстановить сохраненное состояние после обновленияданные таблицы.Я попытался позвонить по номеру onFilterChanged(), который, похоже, не справился с работой.

Мой код выглядит примерно так: this

Нужна помощь.Спасибо

1 Ответ

0 голосов
/ 01 октября 2018

По вашему образцу:

saveState() {
    window.colState = this.gridColumnApi.getColumnState();
    window.groupState = this.gridColumnApi.getColumnGroupState();
    window.sortState = this.gridApi.getSortModel();
    window.filterState = this.gridApi.getFilterModel();
    this.http
      .get(
        "https://raw.githubusercontent.com/ag-grid/ag-grid/master/packages/ag-grid-docs/src/olympicWinnersSmall.json"
      )
      .subscribe(data => {
        this.rowData = data;
        //... restore the state here ...
        setTimeout(()=>{
            this.restoreState();
        }, 100)
      });
}

Вы можете спросить, почему ag-grid не сохраняет текущее состояние, если rowData изменяется.

Это произошло, потому что вы необновляя существующие данные, вы просто заменяете текущие.

Из описания

setRowData(newRowData)равно rowData = newRowData

setRowData (строки) Установить новые строки в сетке.

Для сохранения состояния наоперации обновления вы должны использовать updateRowData метод

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