如何判断列大小调整是手动完成还是使用 onColumnResized() 自动完成?
How to tell if column resize is done manually vs. automatically with onColumnResized()?
在 ag-grid v11.0 之前,sizeColumnsToFit() 触发了一个未传递参数 'finished=true' 的事件。当用户手动调整列大小时,事件将在调整大小拖动完成后传递 'finished=true'。这使我能够区分手动和自动调整列大小。
从 ag-grid v11.0 开始,sizeColumnsToFit() 现在使用参数 'finished=true' 触发事件。有什么方法可以区分这种自动调整大小和用户手动调整大小吗?
从 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);
});
你可以尝试修改comment out finished: 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);
});
ColumnResizedEvent 派生自的 ColumnEvent 有一个 "source" 属性,当你加倍时,它显示为 "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;
}
}
手动拖动列时,源始终为“uiColumnDragged”
if (event.source === 'uiColumnDragged') {
// your logic here
}
在 ag-grid v11.0 之前,sizeColumnsToFit() 触发了一个未传递参数 'finished=true' 的事件。当用户手动调整列大小时,事件将在调整大小拖动完成后传递 'finished=true'。这使我能够区分手动和自动调整列大小。
从 ag-grid v11.0 开始,sizeColumnsToFit() 现在使用参数 'finished=true' 触发事件。有什么方法可以区分这种自动调整大小和用户手动调整大小吗?
从 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);
});
你可以尝试修改comment out finished: 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);
});
ColumnResizedEvent 派生自的 ColumnEvent 有一个 "source" 属性,当你加倍时,它显示为 "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;
}
}
手动拖动列时,源始终为“uiColumnDragged”
if (event.source === 'uiColumnDragged') {
// your logic here
}