2010-10-27 3 views
1

Я использую dojox.grid.DataGrid для отображения данных и позволяю пользователю выбирать одну или несколько строк для выделения элементов для выполнения других действий.dojox.grid.DataGrid - Сохранение выбора строки при сортировке и подкачке

Моя проблема заключается в том, что сетка использует индексы для запоминания выбранных строк. Если я включил clientSort, сортировка строк заставит строки изменить порядок, но выбор изменится на строки, которые теперь занимают индексы выбора перед сортировкой.

Для борьбы с этим я получаю элементы для выбранных строк при каждом изменении выбора, а затем, когда происходит событие onSort, я использую getItemIndex (элемент) для каждого элемента в выбранной коллекции элементов, чтобы получить новые индексы строк, -выберите эти индексы.

Теперь проблема заключается в том, что DataGrid загружает данные по определенному количеству строк за раз (для определения заданного количества строк используется термин) для повышения производительности. Когда происходит сортировка, он перезагружает данные в новом порядке сортировки, но только до значения rowsPerPage (по умолчанию - 40). Когда я пытаюсь использовать getItemIndex для элемента, новая строка которого не была загружена в сетку, он возвращает и индекс -1. Функция getItemIndex() возвращает индекс только после прокрутки пользователя и загрузки строки.

Я не могу найти событие, которое срабатывает при загрузке страницы, чтобы попытаться восстановить выбор. Я просмотрел исходный код 1.3.2 и ничего не могу найти. Я попытался подключиться к ряду частных функций, но никто не работает.

Неужели кто-нибудь встретил это и нашел исправление?

Заранее спасибо.

ответ

0

Я нашел ответ. У dojox.grid.DataGrid есть частное событие (_onFetchComplete), которое запускается каждый раз, когда запрашивает следующую страницу. Я использую setTimeout для запуска моей функции восстановления после продолжительности 300.

Работа выполнена!

Смежные вопросы