我想将数组列表(从blazeDS获取)作为节点添加到树中。单击特定节点后,相关列表将从服务层调用。我已经这样做了,但它不是作为同一树中的子节点出现的。
<mx:Tree x="45" y="61" id="tree" change="tree_changeHandler(event)" creationComplete="tree_creationCompleteHandler(event)" dataProvider="{getReporteesResult2.lastResult}" labelField="mgrName" width="409"></mx:Tree>
AS3 代码:
下面的函数将数据显示为树中的叶子图标。
protected function tree_creationCompleteHandler(event:FlexEvent):void
{
getReporteesResult2.token = managerList.getReportees("rjacoby");
}
单击节点时,服务正在运行,我也在 Rjacoby 下获取相关数据。
protected function tree_changeHandler(event:Event):void
{
managerId=event.currentTarget.selectedItem.mgrId;
Alert.show(managerId);
getReporteesResult3.token = managerList.getReportees(managerId);
我希望这些数据应该显示为 rjacoby 的子项,并在同一棵树中带有文件夹图标。我怎么能得到它。请帮忙。
谢谢里米
中的每个节点都有一个称为 child 的属性,它是一个数组。该节点的所有子节点都将位于此属性内。在您的情况下,当您将分支节点 (rjacoby) 添加到树中时,也为它创建一个子节点[]。当响应返回时,将您的新项目添加到该节点的子节点[]中。
如果你想要更多的控制,你可以考虑编写一个TreeUtility类,该类将使用一些经典算法(广度搜索或类似),并帮助你遍历整个树。我为其中一个场景编写了一个这样的类,其中平面数据来自服务层,我需要创建放置在树中的分层对象。