我正在尝试编写一些代码,使我能够将 ag-Grid
库与无限滚动 方法结合使用。
但我坚持使用参数来正确配置此行为。
例如,我想一次从服务器检索包含 20 个项目的页面。如果我没理解错the API允许我设置页面大小的参数是 cacheBlockSize
。
实际上,每次使用 getRows
参数调用 datasource
中定义的方法时,一次需要 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 行。
最佳答案
您看到多个请求的原因是网格中一次显示的记录数大于页面大小。
假设您的页面大小为 20(即一次从服务器获取 20 条记录)并且由于网格的高度,如果网格能够显示超过 20 条记录,假设为 30,然后它将从服务器获取下一个 block 。
查看实例:ag-grid: infinite-scroll-pagination-ag-grid-initial-page-size-issue
<div id="myGrid" style="height: 300px;" class="ag-theme-balham"></div>
在这里,我设置的高度使网格只显示 9 条记录,因此它没有从服务器获取下一个 block 。
如果你逐渐增加高度,你会注意到更多的请求。
这是有道理的。我说得对吗?
关于javascript - 无限滚动分页 ag-Grid 初始页面大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50744166/