【问题标题】:Ag-Grid: How to save and reload column after applying filterAg-Grid:应用过滤器后如何保存和重新加载列
【发布时间】:2020-09-02 02:12:08
【问题描述】:

使用 Ag-Grid,我们可以应用过滤列。我需要允许用户保存列过滤器顺序(在 sql 后端)。 我使用这种方法,但它允许保存列顺序..

onGridReady: function(params){
  var columnState = JSON.parse(localStorage.getItem('myColumnState'));
  var filterState = JSON.parse(localStorage.getItem('myfilterState'));

  if (columnState) {
    params.columnApi.setColumnState(columnState);
  }
  if (filterState) {
    params.columnApi.setsetFilterModel(filterState);
  }
},

onColumnMoved: function(params){
  var columnState = JSON.stringify(params.columnApi.getColumnState());
  var filterState = JSON.stringify(params.columnApi.getFilterModel());
  localStorage.setItem('myColumnState', columnState);
  localStorage.setItem('myfilterState', filterState);
},

【问题讨论】:

  • 您能指定列过滤顺序是什么意思吗?
  • 我在某些列中进行了过滤...而刷新过滤后的列不应该改变...有可能吗?

标签: jquery codeigniter filter ag-grid


【解决方案1】:

从您的示例中,getFilterModel() 不是 columnApi 的一部分,而是您应该执行以下操作

onColumnMoved中保存状态时:

  var filterState = JSON.stringify(params.api.getFilterModel()); // it is in gridApi
  localStorage.setItem('myfilterState', filterState);

onGridReady中的保存状态读回:

params.api.setFilterModel(filterState);

您可以从文档中关注example

【讨论】:

  • 它有效...如果我使用侧栏工具面板隐藏任何列,是否可以这样做?它仅在我移动任何列时才有效...是否有任何其他事件,如“oncolumnmoved”?
  • 是的。您可以尝试执行此事件 onDisplayedColumnsChanged
猜你喜欢
  • 2018-12-31
  • 2021-07-19
  • 2019-08-16
  • 2018-11-05
  • 2011-03-29
  • 1970-01-01
  • 2020-11-03
  • 1970-01-01
  • 2021-12-06
相关资源
最近更新 更多