3

我有一个关于 Telerik 网格在作为无限滚动操作的一部分获取数据后如何在内部存储数据的问题。我正在使用远程虚拟化模式并通过 Ajax 调用获取新记录。

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

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

正如预期的那样,网格发出 Ajax 请求以请求新页面,但它似乎将先前页面的数据存储在某个对象中。有没有办法通过cient side API 访问该对象?意思是我可以查看网格请求的所有页面(不仅仅是当前页面)的所有数据吗?

我还注意到,网格在滚动期间通常会发出两次相同的 Ajax 请求(对于相同的页码)。有没有办法防止这种情况,因为重复请求似乎返回与前一个相同的数据。

4

1 回答 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])
    }
}

关于多个相同的请求 - 我认为这已得到解决,如果它尚未在最新的内部版本中修复,它应该在最近的版本中。

于 2013-01-16T22:28:01.010 回答