2010-09-22 149 views
0

我正在使用XMLLIST作爲數據提供者來處理樹組件。選擇樹項目

<list> 
    <menuItem label="Home" menuItemId="1" > 
     <menuItem label="Info 1" menuItemId ="4"></menuItem> 
    </menuItem> 
    <menuItem label="Services" menuItemId="2" > 
    </menuItem> 
    <menuItem label="About" menuItemId="3" > 
    </menuItem> 
</list> 

我需要選擇屬性「menuItemId」嵌套節點不知道index.For例如,與menuItemId 4

任何想法選擇項目?

回答

0

嘗試是這樣的,過濾樹的數據提供者找到合適的對象,然後獲取數據提供程序的對象的索引並告訴樹可以選擇項。看起來像是一個迂迴的方式來做到這一點,但我認爲這是我現在可以提出的最好的方式。

var filter:Array = tree.dataProvider.toArray().filter(filterFunc) 
if (filter.length > 0) 
    tree.selectedIndex = tree.dataProvider.getItemIndex(filter[0]); 

protected function filterFunc(item:*, index:int, array:Array):Boolean{ 
    return (item as MenuItem).menuItemId == "2" 
} 
0

使用E4X。例如,

var myList:XMLList = <list> 
    <menuItem label="Home" menuItemId="1" > 
     <menuItem label="Info 1" menuItemId ="4"></menuItem> 
    </menuItem> 
    <menuItem label="Services" menuItemId="2" > 
    </menuItem> 
    <menuItem label="About" menuItemId="3" > 
    </menuItem> 
</list>; 

var menuItemId4:XMLList = myList.menuItem.(@menuItemId==4); 
+0

我需要的是選擇樹中的節點,例如:selectedIndex = 2;但我不知道我需要通過屬性'menuItemId'來選擇它的索引。 – user454530 2010-09-22 17:50:24