Flex中在Tree绑定数据后自动展开树节点的方法(flex是什么的缩写)墙裂推荐

随心笔谈2年前发布 admin
219 0 0

文章摘要

Flex/Flash开发中,使用`Tree`组件时,可以通过`expandChildrenOf(item,true)`方法在绑定数据后自动展开所有树型节点。然而,需注意:在设置dataProvider后立即调用`expandChildrenOf()`可能导致不正确行为,必须先验证或等待组件重绘。 文章介绍了三种方法实现全部展开: 1. **已验证方法**:先验证,再选中第一项并展开。 2. **延时方法**:通过`setTimeout`延时1秒,避免立即展开的问题。 3. **逐项展开**:在验证后逐项调用`expandChildrenOf()`。 这些方法展示了不同实现方式,核心在于确保验证后正确展开节点。


用Flex/Flash做开发的同志们应该会使用 expandChildrenOf(item,true)方法来使用Tree组件在绑定数据后自动展开所有树型节点(不需要用户再自己点击展开节点,会方 便许多),而在Flex开发帮忙文档中很明确写道:

“If you set dataProvider and then immediately call expandChildrenOf() you may not see the correct behavior. You should either wait for the component to validate or call the validateNow() method. ”

第一种:(已验证)

复制代码 代码如下:

//全部展开,初始选中第一项

treePlayList.dataProvider=results;//刷新Tree的全部节点展开 – royanxin – royanxin的博客

treePlayList.validateNow(); //验证并更新此对象的属性和布局,并重绘该对象(如果需要)。

treePlayList.selectedIndex=0;

treePlayList.expandChildrenOf(treePlayList.selectedItem,true);//全部展开

第二种:

复制代码 代码如下:

setTimeout(IniExpand, 1000); //延时1秒

private function IniExpand():void {

TreeView1.selectedIndex=1;

TreeView1.expandItem(TreeView1.selectedItem,true);

}

第三种:

复制代码 代码如下:

//全部展开,初始未选中任何选项

sysTree.validateNow();

for each(var item:XML in this.sysTree.dataProvider){

sysTree.expandChildrenOf(item,true);

}

注意:

Flex中在Tree绑定数据后自动展开树节点的方法(flex是什么的缩写)墙裂推荐 

© 版权声明

相关文章