Flex:从给定索引的AdvancedDataGrid获取项目
问题描述:
我有一个AdvancedDataGrid的子类,显示了一个树状数据结构。我如何能够在给定calculateDropIndex
返回的索引的情况下获得该索引处的项目?Flex:从给定索引的AdvancedDataGrid获取项目
通过代码里姆斯看完之后,好像是最可怕的方式就是:
var oldSelectedIndex:int = this.selectedIndex;
var mouseOverIndex:int = this.calculateDropIndex(event);
this.selectedItem = mouseOverIndex;
var item:* = this.selectedItem;
this.selectedIndex = oldSelectedIndex;
另一种选择似乎与iterator
财产摆弄周围......但是,通过我的方式判断已经看到了它的使用,那也会很快变得相当不快。
那么,如何在高级数据网格中的特定索引处获取该项目而不会精神错乱?
答
this.dataProvider.getItemAt(calculateDropIndex(event));
翻阅文档,看起来您可能可以使用openNodes,它返回一个所有打开节点的数组,它应该与您的索引一致?
this.dataProvider.openNodes[calculateDropIndex(event)];
答
你可以尝试:
// Get the dropIndex from the dragEvent
var index:int = this.calculateDropIndex(event);
// Get the itemRenderer from the index
var renderer:IListItemRenderer = this.indexToItemRenderer(index);
// Get your item from the data property of the itemRenderer
var item:Object = renderer.data;
对不起,但这并不分层的数据。 `this.dataProvider`是'HierarchicalCollectionView'的一个实例,它没有'getItemAt'方法。 – 2009-07-07 19:04:54