在使用 kendo ui - grid 控件时,我发现重置数据源并不会自动将网格滚动位置重新定位到顶部。
这可能是预期的行为,因此在刷新数据源后,我添加了一个调用 jquery scrollTop(0)。这适用于桌面浏览器,但不适用于 iPad。
$("#switch-data-btn").on("click", function(){
grid.dataSource.data(currentData);
grid.dataSource.transport.data = currentData;
grid.content.scrollTop(0);
grid.refresh();
});
然后我决定去核,而不是刷新网格数据,我破坏并重建网格。这样做时,我不再需要 scrollTop(0) 调用,一切都很好。
$("#switch-data-btn").on("click", function() {
buildGrid(currentData);
// buildGrid() destroys the grid, empties the dom element and recreates it.
});
上述解决方案并不理想,但适用于有限的场景。但是,一旦您引入了一个场景,您希望网格使用 scrollTop() 向下滚动到特定位置,iPad 行为就会滚动到该位置,但会阻止您向上滚动以查看并粘贴较早的结果(但适用于桌面浏览器)。
$("#switch-data-btn").on("click", function() {
buildGrid(currentData);
grid.content.scrollTop(50);
});
关于如何有效地将数据重新加载到现有的 kendo gri 并滚动到适用于 IE9+、Chrome、Firefox 和 iOS 和 Android 浏览器的所需位置的任何想法?