在ag-grid v11.0之前,sizeColumnsToFit()使用未传递参数'finished = true'的事件触发。当用户手动调整列的大小时,一旦调整大小拖动完成,事件将传递'finished = true'。这使我能够区分手动和自动列调整大小。
从ag-grid v11.0开始,sizeColumnsToFit()现在触发参数'finished = true'的事件。有没有办法区分这种自动调整大小和手动用户调整大小?
答案 0 :(得分:4)
从中派生ColumnResizedEvent的ColumnEvent具有“源”属性,当您双击分区时,该属性读取“ sizeColumnsToFit”或“ uiColumnDragged”甚至“ autosizeColumns”。
https://www.ag-grid.com/javascript-grid-events/#properties-and-hierarchy
您应该能够使用源来确定事件的触发方式。
myEventHandler(ev: ColumnResizedEvent) {
if (ev.source === 'sizeColumnsToFit') {
do.this;
} else {
do.that;
}
}
答案 1 :(得分:0)
自10以来添加的代码
colsToFireEventFor.forEach( (column: Column) => {
let event: ColumnResizedEvent = {
type: Events.EVENT_COLUMN_RESIZED,
column: column,
columns: [column],
finished: true,
api: this.gridApi,
columnApi: this.columnApi
};
this.eventService.dispatchEvent(event);
});
您可以尝试修改注释完成:true属性或只使用版本10.0,其中此func如下所示:
colsToFireEventFor.forEach( (column: Column) => {
let event = new ColumnChangeEvent(Events.EVENT_COLUMN_RESIZED).withColumn(column);
this.eventService.dispatchEvent(Events.EVENT_COLUMN_RESIZED, event);
});
答案 2 :(得分:0)
手动拖动列时,源始终为“uiColumnDragged”
if (event.source === 'uiColumnDragged') {
// your logic here
}