【发布时间】:2019-11-06 11:04:05
【问题描述】:
有没有办法为 column-menu 设置侦听器,以便在我打开和关闭菜单时触发事件?
功能说明:https://www.ag-grid.com/javascript-grid-column-menu/
我已经在官方文档中搜索过,但没有找到答案。
背景是:
我想将表状态与显示的列、排序、列的位置、过滤器等存储在数据库中。当然,我可以使用像onFilterChanged、onDisplayedColumnsChanged 或onSortChanged 这样的听众。
问题是,每次发生变化时都会触发它,因此会产生很多不需要的 api 调用。
这就是为什么我想在列菜单关闭时执行一个调用。
更新
正如 Viqas 在他的 Answer 中所说,没有官方方法可以做到这一点。一世 试图避免使用
postProcessPopup的解决方案并试图找到一个清洁工 我的问题的解决方案 - 存储表状态。对于关闭 ColumnMenu 时使用回调的解决方法Viqas Answer 更合适。
请注意,这不是回调本身的解决方法 - 它只是存储表状态并执行 ONE API 调用的一种(可能)解决方案
我使用了Angular的
ngOnDestory()函数。
ngOnDestory(): void {
const tableState = {
columnState: this.gridOptions.columnApi.getColumnState(),
columnGroupState: this.gridOptions.columnApi.getColumnGroupState(),
sortState: this.gridOptions.api.getSortModel(),
filterState: this.gridOptions.api.getFilterModel(),
displayedColumns: this.gridOptions.columnApi.getAllDisplayedColumns()
};
// submit it to API
}
【问题讨论】:
标签: javascript angular ag-grid ag-grid-angular