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

Tree のすべてのノードには、配列であるchildrenというプロパティがあります。そのノードのすべての子ノードは、このプロパティ内にあります。あなたの場合、ブランチ ノード (rjacoby) をツリーに追加するときに、そのノードのchildren[]も 1 つ作成します。応答が戻ってきたら、新しいアイテムをそのノードの children[] に追加します。

さらに制御したい場合は、いくつかの古典的なアルゴリズム (幅探索など) を使用する TreeUtility クラスを作成することを考えることができ、ツリー全体をトラバースするのに役立ちます。フラット データがサービス レイヤーから取得され、ツリー内に配置された階層オブジェクトを作成する必要があるシナリオの 1 つに対して、そのようなクラスを 1 つ作成しました。

于 2012-07-09T03:01:52.837 に答える