При использовании кендо пользовательского интерфейса — управления сеткой я обнаружил, что сброс источника данных не приводит к автоматическому перемещению положения прокрутки сетки вверх.
Это вполне ожидаемое поведение, поэтому после обновления источника данных я добавил вызов 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);
});
Любые идеи о том, как эффективно перезагружать данные в существующий кендо-гри и прокручивать до нужной позиции, которая работает в браузерах IE9+, Chrome, Firefox, iOS и Android?