读书人

高手来~怎么获取AdvancedDataGrid的树

发布时间: 2012-03-21 13:33:15 作者: rapoo

高手来~~~~如何获取AdvancedDataGrid的树的节点值呢
AdvancedDataGrid控件中的第一列是树型图,因为我是用GroupingCollection进行绑定的,所以是用的分组来实现树的层级关系的,现在我想获取到这个树中的节点值,应该如何进行呢?
(ps:selectedItem是无法获取到选中节点值的,因为这个节点值就是GroupingCollection中分组的节点,请高手帮帮忙)

[解决办法]
用递归应该就可以吧。
楼主试一下这段代码:

Java code
private function getCurrentSelectedItem():Object{    var currentSelectedItem:Object = null;    var item:Object = grid.selectedItem;    if (!item)        return currentSelectedItem;    // 假设groupingCollection是表格的GroupingCollection类型数据源    // 并且它的source是ArrayCollection, childrenField是children    var collection:ArrayCollection = groupingCollection.source as ArrayCollection;    for (var i:int = 0; i < collection.length; i++)    {        var object:Object = collection.getItemAt(i);        if (object == item)        {            currentSelectedItem = object;            break;        }        else if (includeItem(object.children, item, "children"))        {            currentSelectedItem = object;            break;        }    }    return currentSelectedItem;}private function includeItem(list:Object, item:Object, childField:String):Boolean{    var result:Boolean = false;    var i:int = 0;    var object:Object = null;    if (list is IList)    {        for (i = 0; i < (list as IList).length; i++)        {            object = (list as IList).getItemAt(i);            if (object == item)            {                result = true;                break;            }            else            {                if (object && object[childField])                    result = includeItem(object[childField], item, childField);            }        }    }    else if (list is Array)    {        for (i = 0; i < (list as Array).length; i++)        {            object = (list as Array)[i];            if (object == item)            {                result = true;                break;            }            else            {                if (object && object[childField])                    result = includeItem(object[childField], item, childField);            }        }    }    return result;} 

读书人网 >flex

热点推荐