tree在使用HierarchicalCollectionView为数据源时默认打开所有节点

情景:从数据库加载datatable数据,所有记录都是平行关系,为表示从属关系,UI上使用Tree,用HierarchicalCollectionView作为数据源

问题:默认展开全部节点

解决:

mxml:

代码
       <mx:GroupingCollection id="gc" source="{acUnits}">
        
<mx:grouping>
            
<mx:Grouping>
                
<mx:GroupingField name="townNM"/>
            
</mx:Grouping>
        
</mx:grouping>
    
</mx:GroupingCollection>
    
    
<mx:HierarchicalCollectionView id="hc" source="{gc}"/>
    
    
<!--end delears-->
    
    
<mx:Tree id="tUnits" width="100%" height="100%" dataProvider="{hc}" labelFunction="labelFuc">
        
    
</mx:Tree>

 

as:

获取数据:

private function onGetListSuc(o:Object):void
        {
            form.acUnits
=as ArrayCollection;
            form.gc.refresh();
            ActionUtil.ExpandAll(form.tUnits,form.hc.mx_internal::treeData);
        }

 

ActionUtil.ExpandAll方法:

代码
/**
         * 展开树的全部节点
         * @param tree 要被展开的树
         * @param ac 要展开的节点集合
         
*/
        
public static function ExpandAll(tree:Tree,ac:ArrayCollection):void
        {
            
for each (var item:Object in ac)
            {
                tree.expandChildrenOf(item,
true);
            }
        }

 

 

posted @ 2010-01-07 13:23  蛤蟆王子  阅读(492)  评论(0编辑  收藏  举报