我有一个 Ionic/Angular
应用程序使用 ag-grid
.我希望某些网格在加载网格时自动应用过滤器 - 用户无需执行任何操作。
我尝试了以下方法:
onGridReady(params) {
params.api.sizeColumnsToFit();
// get filter instance
var filterComponent = params.api.getFilterInstance("isActive");
// OR set filter model and update
filterComponent.setModel({
type: "greaterThan",
filter: 0
});
filterComponent.onFilterChanged();
}
但它什么也没做。有任何想法吗?
最佳答案
编辑:AgGrid 在 24.0 版中包含一个 onFirstDataRendered 回调,如后面的评论中所述。下面的原始答案现在仅与此功能之前的版本相关。
onFirstDataRendered(params) {
var filterComponent = params.api.getFilterInstance("isActive");
filterComponent.setModel({
type: "greaterThan",
filter: 0
});
filterComponent.onFilterChanged();
}
在他们的几个旧版示例中重现了您的问题,似乎通过添加一个小的延迟来缓解。只是冒险猜测也许 DOM 还没有完全准备好,尽管网格已经准备好了。Pre-onFirstDataRendered 版本:
onGridReady(params) {
params.api.sizeColumnsToFit();
setTimeout(() => {
var filterComponent = params.api.getFilterInstance("isActive");
filterComponent.setModel({
type: "greaterThan",
filter: 0
});
filterComponent.onFilterChanged();
},150)
}
关于ag-grid - 如何在 ag-grid 中预设列过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49449162/