我尝试编写一些代码,允许我将ag-Grid
库与无限滚动方法一起使用。
但是我坚持使用参数来正确配置这种行为。
比如说,我想要一次从服务器检索20个项目的页面。如果我已正确理解the API,则允许我设置页面大小的参数为cacheBlockSize
。
实际上,对datasource
中使用getRows
参数定义的方法的每次调用都需要一次20行。
但是,在初始阶段,不仅仅是一个电话,正如我所料,但不止一个。除非您设置了非常大的cacheBlockSize
(例如,下面的示例中为100或更多)。我无法理解这种行为是否可配置(可能是paginationPageSize
??)。
例如
使用以下参数:
var gridOptions = {
enableServerSideSorting: true,
enableServerSideFilter: false,
rowModelType: 'infinite',
columnDefs: columnDefs,
//paginationPageSize: 20,
cacheBlockSize: 20,
maxConcurrentDatasourceRequests: 1,
infiniteInitialRowCount: 1
};
正如您所看到的here,在开始时而不是一次加载20行的调用3加载总共20 * 3 = 60行。
答案 0 :(得分:0)
您看到多个请求的原因是网格中一次显示的记录数大于页面大小。
假设您的页面大小为20(即一次从服务器获取20条记录),并且由于网格的高度,如果网格能够显示超过20条记录,那么就说30,然后它将从服务器获取下一个块。
查看实时示例:ag-grid: infinite-scroll-pagination-ag-grid-initial-page-size-issue
<div id="myGrid" style="height: 300px;" class="ag-theme-balham"></div>
在这里,我设置了高度,网格只显示9条记录,因此它没有从服务器获取下一个块。
如果逐渐增加高度,您会发现更多请求。
这是有道理的。我是对的吗?