Flex:以编程方式展开AdvancedDataGrid Tree Column

时间:2009-04-20 15:34:15

标签: flex tree advanceddatagrid

有谁知道如何以编程方式扩展Flex中AdvancedDataGrid树列的节点?如果我使用树,我会使用这样的东西:

dataGrid.expandItem(treeNodeObject, true);

但我似乎无法访问AdvancedDataGrid中的此属性。

4 个答案:

答案 0 :(得分:5)

答案 1 :(得分:5)

复制在上述网址找到的样本并调用此函数:

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

答案 2 :(得分:2)

您还可以通过使用游标迭代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();
    }

答案 3 :(得分:2)

想在此处添加AdvancedDataGrid,尽管有expandAll()方法,但有一个名为displayItemsExpanded的属性,设置为true将扩展所有节点。

为了扩展特定的孩子,可以使用expandChildrenOf()expandItem()方法,可以从上面给出的链接进行验证。