无限滚动分页ag-Grid初始页面大小问题

时间:2018-06-07 14:45:51

标签: javascript datatable ag-grid

我尝试编写一些代码,允许我将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行。

1 个答案:

答案 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条记录,因此它没有从服务器获取下一个块。

如果逐渐增加高度,您会发现更多请求。

这是有道理的。我是对的吗?