У меня есть таблица, использующая конфигурацию 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
запускается только для основных строк и не строк сетки подробностей (не строк в таблице подробностей, а высоты строки сетки подробностей). сам).
Надеюсь, это понятно, спасибо за любые отзывы.