Flex中实现Tree绑定数据后自动展开节点
2011-06-03 14:56
309 查看
用Flex/Flash做开发的同志们应该会使用 expandChildrenOf(item,true)方法来使用Tree组件在绑定数据后自动展开所有树型节点(不需要用户再自己点击展开节点,会方 便许多),而在Flex开发帮忙文档中很明确写道:
<Exchanges xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://equityapi.morningstar.com/"> <MessageInfo> <MessageCode>200</MessageCode> <MessageDetail>Request data successfully</MessageDetail> </MessageInfo> <ExchangeEntityList> <ExchangeEntity> <ExchangeId>ARCX</ExchangeId> <ExchangeName>NYSE ARCA</ExchangeName> <MIC>ARCX</MIC> <RegionId>NRA</RegionId> <RegionName>North America</RegionName> <CountryId>USA</CountryId> <CountryName>United States</CountryName> </ExchangeEntity> <ExchangeEntity> <ExchangeId>PINX</ExchangeId> <ExchangeName>PINK SHEETS LLC (NQB)</ExchangeName> <MIC>PINX</MIC> <RegionId>NRA</RegionId> <RegionName>North America</RegionName> <CountryId>USA</CountryId> <CountryName>United States</CountryName> </ExchangeEntity> <ExchangeEntity> <ExchangeId>ASE</ExchangeId> <ExchangeName>NYSE AMEX EQUITIES</ExchangeName> <MIC>XASE</MIC> <RegionId>NRA</RegionId> <RegionName>North America</RegionName> <CountryId>USA</CountryId> <CountryName>United States</CountryName> </ExchangeEntity> <ExchangeEntity> <ExchangeId>NAS</ExchangeId> <ExchangeName>NASDAQ</ExchangeName> <MIC>XNAS</MIC> <RegionId>NRA</RegionId> <RegionName>North America</RegionName> <CountryId>USA</CountryId> <CountryName>United States</CountryName> </ExchangeEntity> <ExchangeEntity> <ExchangeId>NYS</ExchangeId> <ExchangeName>NEW YORK STOCK EXCHANGE, INC.</ExchangeName> <MIC>XNYS</MIC> <RegionId>NRA</RegionId> <RegionName>North America</RegionName> <CountryId>USA</CountryId> <CountryName>United States</CountryName> </ExchangeEntity> <ExchangeEntity> <ExchangeId>OTC</ExchangeId> <ExchangeName>OTC BULLETIN BOARD</ExchangeName> <MIC>XOTC</MIC> <RegionId>NRA</RegionId> <RegionName>North America</RegionName> <CountryId>USA</CountryId> <CountryName>United States</CountryName> </ExchangeEntity> <ExchangeEntity> <ExchangeId>GREY</ExchangeId> <ExchangeName>Grey Market</ExchangeName> <MIC>PSGM</MIC> <RegionId>NRA</RegionId> <RegionName>North America</RegionName> <CountryId>USA</CountryId> <CountryName>United States</CountryName> </ExchangeEntity> </ExchangeEntityList> </Exchanges>
"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;//刷新
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);
}
不过,我亲自试了,根本无
效嘛~
其实,我自己想到了一个我
认为是权威准确的方法,那就是用callLater方法,再加上匿名代理方法!!!
代码如
下:
myTree.callLater(function ():void{myTree.expandChildrenOf(selectedItem.root[0],true);});
//selectedItem.root当然起始节点了(这是在
flash builder 4中测试成功)
这个方法是在某天开窍突然
想到Flex/Flash会像C#语言那样,能在方法的参数体里定义一个匿名方法呢?, 类似C#里的匿名代理方法delegate, 结果一试果然成功了,呵呵
相关文章推荐
- 在Flex中让Tree绑定数据后自动展开树节点
- 在Flex中让Tree绑定数据后自动展开树节点
- Flex中在Tree绑定数据后自动展开树节点的方法
- 使用UltraWebTree时,如何在刷新后展开之前选中的节点,并绑定相关数据
- 根据tree绑定数据的上下级关系,实现无限制的分支等级[flex][arraycollection][tree]
- Flex:拖拽时自动展开 Tree 节点
- tree节点自动展开
- runtime实现数据模型,自动绑定数据
- Easyui中tree组件实现搜索定位功能及展开节点定位
- Flex tree展开节点问题!
- flex tree 动态加载 以及自动展开
- as3 非flex项目实现数据绑定
- 利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的内容是否合法
- FLEX教程:设置缓动展开TREE控件节点.
- tree节点自动展开
- 使用easyui的Tree 实现无限子节点绑定
- 实现org.eclipse.jface.viewers.TreeViewer双击展开节点
- 【VUE】.NET实现Tree组件双向绑定数据(3)-资源分配
- FLEX中Tree默认展开所有节点