我对 Telerik 网格在作为无限滚动操作的一部分获取数据后如何在内部存储数据有疑问。我正在使用远程虚拟化模式并通过 Ajax 调用获取新记录。
我可以通过以下方式访问当前绑定(bind)到网格的数据集:
$("#Grid").data().kendoGrid.dataSource.view()
正如预期的那样,网格发出 Ajax 请求来请求新页面,但它似乎将先前页面的数据存储在某处的对象中。有没有办法通过 cient 端 API 访问该对象?这意味着我可以查看网格请求的所有页面(而不仅仅是当前页面)的所有数据吗?
我还注意到,在滚动过程中,网格通常会发出两次相同的 Ajax 请求(对于相同的页码)。有没有办法避免这种情况,因为重复的请求似乎返回与前一个相同的数据。
最佳答案
所有数据都存储在内部 _ranges 数组中称为“范围”的数据 block 中。
您可以像这样循环遍历所有加载的数据:
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])
}
}
关于多个相同的请求 - 我认为这已得到解决,如果它尚未在最新的内部构建中修复,它应该在最近的版本中。
关于asp.net-mvc - Telerik 远程虚拟化 (Kendo Grid),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14366081/