Flex: расширение столбца дерева AdvancedDataGrid программным способом

Кто-нибудь знает, как программно расширить узлы столбца дерева AdvancedDataGrid в Flex? Если бы я использовал дерево, я бы использовал что-то вроде этого:

dataGrid.expandItem(treeNodeObject, true);

Но, похоже, у меня нет доступа к этому свойству в AdvancedDataGrid.


person CodeMonkey    schedule 20.04.2009    source источник


Ответы (4)


AdvancedDataGrid также имеет метод expandItem ():

http://livedocs.adobe.com/flex/3/langref/mx/controls/AdvancedDataGrid.html#expandItem()

person Eric Belair    schedule 20.04.2009

Скопируйте образец, найденный по вышеупомянутому URL-адресу, и вызовите эту функцию:

private function openMe():void
{
    var obj:Object = gc.getRoot();
    var temp:Object = ListCollectionView(obj).getItemAt(0);
    myADG.expandItem(temp,true);
}
person slukse    schedule 20.04.2009

Вы также можете открывать узлы, перебирая dataProvider с помощью курсора. Вот как я открываю все узлы на указанном уровне:

    private var dataCursor:IHierarchicalCollectionViewCursor;

    override public function set dataProvider(value:Object):void
    {
        super.dataProvider = value;

        /* The dataProvider property has not been updated at this point, so call 
            commitProperties() so that the HierarchicalData value is available. */
        super.commitProperties();

        if (dataProvider is HierarchicalCollectionView)
            dataCursor = dataProvider.createCursor();
    }

    public function setOpenNodes(numLevels:int = 1):void
    {
        dataCursor.seek(CursorBookmark.FIRST);

        while (!dataCursor.afterLast)
        {
            if (dataCursor.currentDepth < numLevels)
                dataProvider.openNode(dataCursor.current);
            else
                dataProvider.closeNode(dataCursor.current);

            dataCursor.moveNext();
        }

        dataCursor.seek(CursorBookmark.FIRST, verticalScrollPosition);

        // Refresh the data provider to properly display the newly opened nodes
        dataProvider.refresh();
    }
person Eric Belair    schedule 20.04.2009

Хотелось бы добавить здесь, что AdvancedDataGrid, несмотря на наличие метода expandAll(), имеет свойство с именем displayItemsExpanded, для которого установлено значение true, чтобы развернуть все узлы.

Для раскрытия определенных дочерних элементов можно использовать методы expandChildrenOf() и expandItem(), что можно проверить по ссылкам, приведенным выше.

person Darshan Gopinath    schedule 25.09.2012