看到很多RIA論壇上有人問怎么通過編程來增加或者刪除Tree組件的節(jié)點,今天動手解決了這個問題。
API文檔里講的很明白,Tree組件里有一個dataProvider的屬性,該屬性的類型是一個Object,但是它具有TreeDataProvider或者XMLTreeDataProvider的所有屬性和方法,要實現(xiàn)添加或者刪除節(jié)點就必須通過操作該對象來實現(xiàn)。下面展示關(guān)鍵代碼。
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>
我現(xiàn)在要在觸發(fā)一個按鈕的click事件時為第一個節(jié)點添加一個子節(jié)點,并為這個剛添加的節(jié)點增加一個子節(jié)點。
2.控制代碼:
function addTreeNode()
{
var provider = testTree.dataProvider;
var treeNodes:Array = provider.getChildNodes();//返回第一層節(jié)點的數(shù)組
treeNodes[0].addTreeNode( "test1" , null );
( treeNodes[0].getChildNodes() )[0].addTreeNode( "test2" , null );
}
點擊一下樹的第一個節(jié)點,應(yīng)該看見剛才增加的節(jié)點,刪除節(jié)點的操作和增加節(jié)點一樣,只不過使用的Method不一樣而已。