Обновление поставщика иерархических данных в расширенной сетке данных во время перетаскивания

Я пытаюсь перетащить иерархические данные в одну и ту же расширенную сетку данных, и я хотел бы, чтобы поставщик данных обновлялся при обновлении 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. В частности, проверьте последнюю страницу под названием "Перемещение и копирование данных". Удачи тебе.

Другие вопросы по тегам