Получить элементы в расширенном узле в AdvancedDataGrid

Есть ли способ получить элементы, которые находятся в расширенном узле дерева ADG?

Учитывая образец дерева узла:

- Atlantic
    Celtics
    Nets
    Knicks
    Sixers
    Raptors
+ Central
+ SouthEast
+ SouthWest
+ NorthWest
+ Pacific

Я планирую записать данные в событие itemOpen ADG.

private function myADG_ItemOpen(event:AdvancedDataGridEvent) :void
{
  // What codes do I put here to get the following teams:
  // Celtics, Nets, Knicks, Sixers, Raptors
}

Обновление: мне удалось получить некоторые коды, которые каким-то образом предоставляют мне объект, содержащий команды:

var ihd:IHierarchicalData = IHierarchicalCollectionView(myADG.dataProvider).source;

    if(ihd.hasChildren(evt.item))
    {
      var objGetChildren:Object = ihd.getChildren(evt.item);
      var dataString:String = ObjectUtil.toString(objGetChildren);

      // From here, I am able to parse the dataString to an array, where I am able to get the team name.
    }

1 ответ

Решение

Вы можете получить ADG от AdvancedDataGridEvent и тогда вы можете попытаться разыграть его dataProvider для IHierarchicalCollectionView, Если это сработало, вы можете использовать его, чтобы получить дочерние элементы узла opend.

private function myADG_ItemOpen(event:AdvancedDataGridEvent):void
{
    var grid:AdvancedDataGrid = AdvancedDataGrid(event.currentTarget);
    var dataProvider:IHierarchicalCollectionView = grid.dataProvider as IHierarchicalCollectionView;

    if (dataProvider && event.item)
    {
        var children:ICollectionView = dataProvider.getChildren(event.item);

        if (children)
        {
            // do something with the children
        }
    }
}
Другие вопросы по тегам