我正在尝试使用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
};
服务以这种格式将数据返回给用户界面......
{
"total": 100000,
"data": [{...},{...}]
}
GridReadHandler只是创建一个POST请求,并通过AngularJS的$ http提供程序触发请求。正如我上面提到的,第一个请求返回数据并正确显示它,但是当我滚动到底部时,我希望Kendo能够触发另一个数据读取请求。任何人都可以看到我可能会失踪的东西吗?
提前致谢。