【发布时间】:2018-08-15 08:00:34
【问题描述】:
我正在使用 ag-grid 在 UI 中表示一些数据。在使用 RxJS 设置行数据后,我遇到了自动调整列大小的问题。
我有一个设置数据的代码:
this.accountingStoreService.getPurchaseOrders().subscribe(
purchaseOrders => {
this.gridApi.setRowData(purchaseOrders);
}
);
如何调用 autoSize 来确保所有数据都已呈现?我试图使用 processRowPostCreate 但如果不设置超时它也无法工作:
this.gridOptions = {
rowData: this.purchaseOrders,
processRowPostCreate: (params) => {
this.generateRowEvents(params);
},
...
}
public generateRowEvents(params) {
params.addRenderedRowListener('load', this.autoSizeColumns());
}
public autoSizeColumns() {
const allColumnIds = [];
this.gridColumnApi.getAllColumns().forEach(function (column) {
if (!column.colDef.suppressSizeToFit) {
allColumnIds.push(column.colId);
}
});
setTimeout(() => {
this.gridColumnApi.autoSizeColumns(allColumnIds);
}, 300);
}
但这种实现有时会不正确。
是否可以在不使用任何超时或类似的东西的情况下实现它?
【问题讨论】:
标签: angular ag-grid ag-grid-ng2