Я использую dojox.grid.DataGrid для отображения данных и позволяю пользователю выбирать одну или несколько строк для выделения элементов для выполнения других действий.dojox.grid.DataGrid - Сохранение выбора строки при сортировке и подкачке
Моя проблема заключается в том, что сетка использует индексы для запоминания выбранных строк. Если я включил clientSort, сортировка строк заставит строки изменить порядок, но выбор изменится на строки, которые теперь занимают индексы выбора перед сортировкой.
Для борьбы с этим я получаю элементы для выбранных строк при каждом изменении выбора, а затем, когда происходит событие onSort, я использую getItemIndex (элемент) для каждого элемента в выбранной коллекции элементов, чтобы получить новые индексы строк, -выберите эти индексы.
Теперь проблема заключается в том, что DataGrid загружает данные по определенному количеству строк за раз (для определения заданного количества строк используется термин) для повышения производительности. Когда происходит сортировка, он перезагружает данные в новом порядке сортировки, но только до значения rowsPerPage (по умолчанию - 40). Когда я пытаюсь использовать getItemIndex для элемента, новая строка которого не была загружена в сетку, он возвращает и индекс -1. Функция getItemIndex() возвращает индекс только после прокрутки пользователя и загрузки строки.
Я не могу найти событие, которое срабатывает при загрузке страницы, чтобы попытаться восстановить выбор. Я просмотрел исходный код 1.3.2 и ничего не могу найти. Я попытался подключиться к ряду частных функций, но никто не работает.
Неужели кто-нибудь встретил это и нашел исправление?
Заранее спасибо.