【发布时间】:2019-08-06 12:06:50
【问题描述】:
我有一个使用 Master/Detail 配置的表,并且正在使用 getRowHeight 回调。
高度的初始设置按预期工作。我的期望是,当更新表格数据时,将重新计算包含详细网格的行的高度,但我似乎无法触发这些调整大小。
我的getRowHeight 定义是:
getRowHeight = params => params.node.detail ? this.getDetailHeight(params) : 48;
getDetailHeight = params => {
let rows = params.data.filterData.length;
return rows * 48 + 116; // all rows height + (header & footer)
};
表的数据会这样更新(设置了deltaRowDataMode 标志):
componentDidUpdate() {
if (this && this.gridApi) {
this.gridApi.setRowData(_.cloneDeep(this.props.data));
this.gridApi.resetRowHeights();
this.gridApi.forEachDetailGridInfo(detail => detail.api.resetRowHeights());
this.gridApi.redrawRows(_.cloneDeep(this.props.data));
}
}
我希望对resetRowHeights 的调用会再次触发getRowHeight,基于https://www.ag-grid.com/javascript-grid-row-height/#api-resetrowheights:
api.resetRowHeights()调用此 API 以使网格清除所有行高并从头开始重新计算它们 - 如果您提供 getRowHeight() 回调,它将为每一行再次调用。然后网格将重新调整所有行的大小并重新定位。这是霰弹枪方法。
但是,我看到的行为是 getRowHeight 仅针对主行触发,不是详细网格行(不是详细信息表中的行,而是详细信息网格的高度行本身)。
我希望这很清楚,感谢您的任何反馈。
【问题讨论】:
标签: javascript reactjs ag-grid ag-grid-react