我在ag-grid网站上看到了这个注释:
仅在内存行模型中支持更改行高。使用虚拟分页,视口或企业行模型时,不能使用变量行高。这是因为这些行模型需要计算出未加载的行的位置,因此需要假设行高是固定的。
但getRowHeight()在以前的版本(7.x)中得到了很好的支持,所以我们想知道必须有一些替代的方法来实现它。
我在以前版本的ag-grid中使用了rowModelType ='pagination'。但是由于对rowModelType ='pagination'进行了降级,我将其替换为rowModelType ='infinite'。 但有了这个,getRowHeight()就不像那里的网站那样工作了。
是否有另一种方法可以实现这一目标。 我的网格选项:
var gridOptions = {
floatingFilter:true,
debug: true,
enableServerSideSorting: true,
enableServerSideFilter: true,
enableColResize: true,
rowSelection: 'single',
rowDeselection: true,
columnDefs: columnDefs,
rowModelType: 'infinite',
paginationPageSize: 10,
cacheOverflowSize: 2,
maxConcurrentDatasourceRequests: 2,
infiniteInitialRowCount: 1,
maxBlocksInCache: 2,
//rowHeight: 5,
getRowNodeId: function(item) {
return item.id;
},
getRowHeight: function(params){
return 300;
}
};
这是我的Plunkr,我试图使用getRowHeight(),但它没有用。 https://plnkr.co/edit/P6fnVz4ud1A68khuqDtx?p=preview
答案 0 :(得分:4)
getRowHeight()
。 getRowHeight 仅适用于 InMemoryRowModel
答案 1 :(得分:2)
获取数据后,您可以执行以下代码:
setRowsHeight(){
let gridHeight = 0;
this.gridOptions.api.forEachNode(node => {
let rowHeight = this.gridOptions.getRowHeight(node);
node.setRowHeight(rowHeight);
node.setRowTop(gridHeight);
gridHeight += rowHeight;
});
if (!gridHeight) {
return;
}
let elements = this.el.nativeElement.getElementsByClassName('ag-body-container');
if (elements) {
this.renderer.setElementStyle(elements[0], 'height', `${gridHeight}px`)
}
}
我希望它会对你有所帮助 对我来说它解决了这个问题