Ag-Grid:应用过滤器后如何保存和重新加载列
Posted
技术标签:
【中文标题】Ag-Grid:应用过滤器后如何保存和重新加载列【英文标题】:Ag-Grid: How to save and reload column after applying filter 【发布时间】: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);
,
【问题讨论】:
您能指定列过滤顺序是什么意思吗? 我在某些列中进行了过滤...而刷新过滤后的列不应该改变...有可能吗? 【参考方案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以上是关于Ag-Grid:应用过滤器后如何保存和重新加载列的主要内容,如果未能解决你的问题,请参考以下文章