0

我想将数组列表(从 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 的子项,并在同一棵树中显示文件夹图标。我怎么能得到那个。请帮忙。

谢谢里米

4

1 回答 1

0

树中的每个节点都有一个名为children的属性,它是一个数组。该节点的所有子节点都将在此属性内。在您的情况下,当您将分支节点 (rjacoby) 添加到树中时,还要为其创建一个children[]。当响应返回时,将您的新项目添加到该节点的 children[] 中。

如果您想要更多控制权,您可以考虑编写一个 TreeUtility 类,该类将使用一些经典算法(广度搜索等)并帮助您遍历整个树。我为平面数据来自服务层的场景之一编写了一个这样的类,我需要创建放置在树中的分层对象。

于 2012-07-09T03:01:52.837 回答