看到很多RIA论坛上有人问怎么通过编程来增加或者删除Tree组件的节点,今天动手解决了这个问题。
API文档里讲的很明白,Tree组件里有一个dataProvider的属性,该属性的类型是一个Object,但是它具有TreeDataProvider或者XMLTreeDataProvider的所有属性和方法,要实现添加或者删除节点就必须通过操作该对象来实现。下面展示关键代码。
1.Tree组件的描述看起来是这样的:
<mx:Tree id="testTree" height="100%">
<mx:dataProvider>
<mx:XML>
<node label="index1" isBranch="true" />
<node label="index2" isBranch="true">
<node label="index5" />
<node label="index6" />
</node>
<node label="index3" isBranch="true" />
<node label="index4" isBranch="true" />
</mx:XML>
</mx:dataProvider>
</mx:Tree>
我现在要在触发一个按钮的click事件时为第一个节点添加一个子节点,并为这个刚添加的节点增加一个子节点。
2.控制代码:
function addTreeNode()
{
var provider = testTree.dataProvider;
var treeNodes:Array = provider.getChildNodes();//返回第一层节点的数组
treeNodes[0].addTreeNode( "test1" , null );
( treeNodes[0].getChildNodes() )[0].addTreeNode( "test2" , null );
}
点击一下树的第一个节点,应该看见刚才增加的节点,删除节点的操作和增加节点一样,只不过使用的Method不一样而已。
联系客服