【问题标题】:Ag-grid save/restore filter state not workingAg-grid 保存/恢复过滤器状态不起作用
【发布时间】:2019-03-06 05:44:09
【问题描述】:

我一直在我的应用程序中使用 Ag-grid,我正在尝试保存和恢复表格过滤器。 (我没有使用 Ag-Grid 的企业版)。

我找到了this link,它告诉我如何保存/恢复过滤器

我正在尝试存储过滤器状态,然后点击更新表的 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

需要帮助。 谢谢

【问题讨论】:

  • 如何更新网格内的数据?什么是流量? SaveState->UpdateData->RestoreState?
  • 最初数据是通过点击一个 URL 来加载的,之后我应用了一些过滤器,在我再次点击同一个 URL 之前,我将保存状态,然后点击同一个 URL。从 URL 加载数据后,我尝试恢复似乎不起作用的状态>恢复状态后未应用过滤器
  • 您需要展示更多代码。理想情况下,您还应该提供问题的重现(您可以从this 开始)。

标签: angular ag-grid


【解决方案1】:

根据您的示例:

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)
      });
}

如果rowData 更改,您可以问为什么ag-grid 不保持当前状态。

发生了,因为您没有更新现有数据,您只是替换当前数据。

From the description

setRowData(newRowData) 等于 rowData = newRowData

setRowData(rows) 将新行设置到网格中。

要实现更新操作的状态保存,您应该使用updateRowData 方法

【讨论】:

    猜你喜欢
    • 2017-01-28
    • 1970-01-01
    • 2020-06-08
    • 2017-06-03
    • 2018-06-01
    • 2018-10-05
    • 2019-10-19
    • 2018-11-05
    • 2020-06-12
    相关资源
    最近更新 更多