我有一个像这样的 aggrid 组件:
private gridOptions = {
columnDefs: this.columnDefs,
frameworkComponents: { buttonRenderer: ButtonRenderer},
pagination: true,
paginationPageSize: 20,
cacheBlockSize: 20,
// server side paging
rowModelType: 'infinite',
datasource: this.dataSource
};
private dataSource: IDatasource = {
getRows: (params: IGetRowsParams) => {
var query = { startrow: params.startRow,
endrow: params.endRow,
company_name: this.companyName,
company_address: this.companyAddress,
company_capital: this.companyCapital
};
this.http.post(environment.api_url + "/register/search",query).subscribe((results:any) => {
params.successCallback(results.data, results.totalRecords);
this.gridApi.refresh();
});
}
};
首次加载aggrid时,显示正常。如果我按下一页,则会出现此错误:
错误错误:“ag-Grid:当网格处于绘制行的中间时无法让网格绘制行。当网格处于渲染阶段时,您的代码可能调用了网格 API 方法。要克服这个问题,请将 API 调用放入超时,例如调用 setTimeout(function(){api.refreshView(),0} 而不是 api.refreshView()。要查看导致刷新的代码部分,请检查此堆栈跟踪。”
有什么例子可以引用吗?我四处寻找,但没有这个,每个人似乎都过得很好
问题。
顺便说一句:我正在使用 angular 8,aggrid 22.1.1
最佳答案
如@Vincemt Chen 评论中所述
Thanks for your answer. It's a valueFormatter problem for me. If I remove valueFormatter from column definition, everything works fine. When I check chrome console, I saw formatter function got undefine for cell value.I dont know how to fix it, so I remove all valueFormatter. Everything work great after that.
它也发生在我身上,所以不是删除
valueFormatter
这很有用,我添加了检查是否 params.value
是 undefined
.例如:{
headerName: "first cell",
field: "first field",
valueFormatter: (params) => {
if(!params.value) return 'ERROR';
...your original code...
}
}
关于angular - aggrid 服务器端分页 'cannot get grid to draw rows when it is in the middle of drawing rows',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60716050/