2 回答

TA贡献1875条经验 获得超3个赞
您需要使用 columnDefs 而不是 defaultColDef 来执行此操作。插件链接
showFilter() {
/*
this.defaultColDef = {...this.defaultColDef, floatingFilter: true};
setTimeout(() => {
this.gridApi.refreshHeader();
}, 0);*/
var columnDefs = this.gridApi.getColumnDefs();
columnDefs.forEach(function (colDef, index) {
colDef.floatingFilter = true;
});
this.gridApi.setColumnDefs(columnDefs);
}
AG 网格在渲染网格时合并defaultColDefs,colDefs然后colDefs在方法中使用对象setupFloatingFilter,因此在 defaultColDefs 中设置值是没有用的。
调用gridApi.setColumnDefs调用HeaderContainer.prototype.init因此呈现您的过滤器组件,而调用refreshHeader内部调用gridPanel.setHeaderAndFloatingHeights,headerRootComp.refreshHeader但没有调用init将呈现您的过滤器组件的函数。

TA贡献1773条经验 获得超3个赞
要更新 agGrid 中的 defaultColDef,您可以使用 setDefaultColDefgridApi 中的方法传递全新的 colDef。并且不要忘记刷新所有标题。
this.gridApi.api.setDefaultColDef({
...this.defaultColDef,
floatingFilter: true
});
this.gridApi.api.refreshHeader();
希望这会有所帮助
添加回答
举报