Обновление поставщика иерархических данных в расширенной сетке данных во время перетаскивания
Я пытаюсь перетащить иерархические данные в одну и ту же расширенную сетку данных, и я хотел бы, чтобы поставщик данных обновлялся при обновлении ADG. (Я хочу иметь возможность сохранить и загрузить это дерево, поэтому важно, чтобы перетаскивания сохранялись.)
У меня есть пример приложения (с включенным источником просмотра), размещенный здесь: www.crcarlson.com/adg/AdvancedDataGridDragAndDrop.swf
Образец приложения имеет ADG, показывающий иерархические данные, а также плоские данные. Первый столбец каждой сетки данных показывает индекс строки базовых данных.
Если вы переставите элементы в левом ADG, индексы строк станут неупорядоченными. Если вы нажмете кнопку traceTree, вы увидите, что поставщик данных не в порядке.
С другой стороны, если вы сделаете то же самое справа, номера строк останутся упорядоченными, даже когда объекты перемещаются, и если вы нажмете кнопку traceFlat, поставщик данных будет в порядке, показанном на ADG
Моя цель состоит в том, чтобы порядок поставщиков данных соответствовал порядку ADG для левой сетки, которая отображает иерархические данные.
Буду признателен за любые советы по этому поводу, в том числе "вы не можете добраться отсюда, сделайте это так".
1 ответ
Я заметил несколько вещей, просматривая ваш код и используя приложение:
- Используйте ArrayCollection вместо Array в качестве dataProvider для компонента представления, данные которого изменяются. Это может решить ваши проблемы с обновлением.
- Если реализация ArrayCollection не решает полностью ваши проблемы с обновлением, добавьте необходимую логику в обработчик событий dragDrop или dragComplete.
- Я получаю ошибку во время выполнения каждый раз, когда перетаскиваю элемент из adg в adgFlat.
Вот пример того, как Adobe использует Drag and Drop. В частности, проверьте последнюю страницу под названием "Перемещение и копирование данных". Удачи тебе.