我正在尝试将 Kendo UI 的 Grid 与远程数据虚拟化一起使用来连接到包含 100K 到 10M 记录的数据源。我知道我的大部分配置工作正常,因为 datasource.transport.read() 在初始页面加载时触发我的自定义函数并且返回的数据正确呈现。但是,当最初的 100 行滚动到底部时,datasource.transport.read() 不会再次触发以加载下一页数据。我已经在 Chrome 开发工具网络选项卡中验证了这一点。
我在这样的 AngularJS 模板中定义了一个 Kendo UI Grid...
...
<div id="myGrid"
kendo-grid="myGrid"
k-options="myGrid.gridOptions"
k-columns="myGrid.columns">
</div>
...
gridOptions 是这样定义的...
_this.gridOptions = {
dataSource: new kendo.data.DataSource({
serverPaging: true,
serverSorting: true,
pageSize: 100,
schema: {
data: "data",
total: "total"
},
transport: {
read: gridReadHandler // call a REST service and return data
}
}),
height: 600,
scrollable: {
virtual: true
},
selectable: false,
sortable: true,
resizable: true
};
服务以这种格式将数据返回到 UI...
{
"total": 100000,
"data": [{...},{...}]
}
GridReadHandler 简单地创建一个 POST 请求并通过 AngularJS 的 $http 提供程序触发该请求。正如我上面提到的,第一个请求返回数据并正确显示它,但是当我滚动到底部时,我希望 Kendo 触发另一个数据读取请求。谁能看到我可能缺少的东西?
提前致谢。