Telerik远程虚拟化(Kendo Grid)

3

我有一个问题,涉及到 Telerik 表格在无限滚动操作中获取数据后如何在内部存储。我使用远程虚拟化模式,并通过 Ajax 调用获取新记录。

我可以通过以下方式访问当前绑定到表格的数据集:

$("#Grid").data().kendoGrid.dataSource.view()

正如预期的那样,网格会发出Ajax请求以请求新页面,但它似乎在某个对象中存储了先前页面的数据。是否可以通过客户端API访问该对象?换句话说,我能否查看网格请求的所有页面的所有数据(而不仅仅是当前页面)?
我还注意到,网格在滚动时经常会两次进行相同的Ajax请求(针对相同的页码)。是否有一种方法来防止这种情况,因为重复的请求似乎返回与先前请求的相同数据。
1个回答

1
所有数据都存储在称为“范围”的数据块中,这些数据块位于内部_ranges数组中。
您可以像这样循环遍历所有加载的数据:
var chunks = $('#gridName').data().kendoGrid.dataSource._ranges
for(var i=0;i<chunks.length;i++){
    for(var j=0;j<chunks[i].data.length;j++){
        console.log(chunks[i].data[j])
    }
}

关于多个相同请求的问题 - 我认为这已经得到解决,如果它还没有在最新的内部版本中修复,那么它应该会在最近的发布中得到解决。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接