2010-09-22 119 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