3

我正在尝试将 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 触发另一个数据读取请求。谁能看到我可能缺少的东西?

提前致谢。

4

0 回答 0