flex tree 获得选中当前节点的所有父节点
答案:2 悬赏:80 手机版
解决时间 2021-03-22 15:05
- 提问者网友:温柔港
- 2021-03-22 11:00
flex tree 获得选中当前节点的所有父节点
最佳答案
- 五星知识达人网友:人间朝暮
- 2021-03-22 11:33
第一,你在制作数据源的时候,需要为子节点的数据源指定一个属性parent
private function packQuanXianTreeData(quanXianTreeDataTemp:ArrayCollection):void
{
var quanXianTreeData_:ArrayCollection = new ArrayCollection();
if(quanXianTreeDataTemp.length>0)
{
for each(var obj1:Object in quanXianTreeDataTemp)
{
if(obj1.hasOwnProperty('levels')&&obj1['levels'] == 1)
{
quanXianTreeData_.addItem(obj1);
}
}
var sort:Sort = new Sort();
sort.fields = [new SortField("sort")];
quanXianTreeData_.sort = sort;
quanXianTreeData_.refresh();
for each(var obj2:Object in quanXianTreeDataTemp)
{
var children:ArrayCollection = new ArrayCollection();
for each(var obj3:Object in quanXianTreeDataTemp)
{
if(obj3.hasOwnProperty('pid')&&obj3['pid']==obj2['id'])
{
obj3.parent = obj2;
children.addItem(obj3);
}
}
if(children.length>0)
{
children.sort = sort;
children.refresh();
obj2.children = children;
}
}
}
this.quanXianTreeData = quanXianTreeData_;
}第二,获得父节点的方法。参数obj:Object为选中的节点,参数ac:ArrayCollection为装父节点的集合。
private function getCondition(obj:Object,ac:ArrayCollection):void
{
var parent:Object;
if(obj.hasOwnProperty("parent")&&obj['parent']!=null)
{
parent = obj['parent'];
}
ac.addItemAt(obj,0);
if(parent!=null)
{
getCondition(parent,ac);
}
}
private function packQuanXianTreeData(quanXianTreeDataTemp:ArrayCollection):void
{
var quanXianTreeData_:ArrayCollection = new ArrayCollection();
if(quanXianTreeDataTemp.length>0)
{
for each(var obj1:Object in quanXianTreeDataTemp)
{
if(obj1.hasOwnProperty('levels')&&obj1['levels'] == 1)
{
quanXianTreeData_.addItem(obj1);
}
}
var sort:Sort = new Sort();
sort.fields = [new SortField("sort")];
quanXianTreeData_.sort = sort;
quanXianTreeData_.refresh();
for each(var obj2:Object in quanXianTreeDataTemp)
{
var children:ArrayCollection = new ArrayCollection();
for each(var obj3:Object in quanXianTreeDataTemp)
{
if(obj3.hasOwnProperty('pid')&&obj3['pid']==obj2['id'])
{
obj3.parent = obj2;
children.addItem(obj3);
}
}
if(children.length>0)
{
children.sort = sort;
children.refresh();
obj2.children = children;
}
}
}
this.quanXianTreeData = quanXianTreeData_;
}第二,获得父节点的方法。参数obj:Object为选中的节点,参数ac:ArrayCollection为装父节点的集合。
private function getCondition(obj:Object,ac:ArrayCollection):void
{
var parent:Object;
if(obj.hasOwnProperty("parent")&&obj['parent']!=null)
{
parent = obj['parent'];
}
ac.addItemAt(obj,0);
if(parent!=null)
{
getCondition(parent,ac);
}
}
全部回答
- 1楼网友:往事埋风中
- 2021-03-22 11:45
var parentData = tree.dataDescriptor.getParent(tree.selectedItem, tree.dataProvider);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯