0

データベースに保存されたストアに基づいてツリーを作成したいと考えています。アクションスクリプトを使用して、データベースからすべてのストアをフェッチし、各ストアのツリーを作成し、そのデータプロバイダーも設定しています。

私のコードは次のとおりです。
var customTree:Tree = new Tree();
customTree.showRoot = false;
customTree.labelField = 'ラベル';
customTree.dataProvider = xmlval; // xmlval は私の XML です

アプリケーションを実行すると、xmlがそのまま出力されます。しかし、ツリー コントロールを静的にし、アクション スクリプトを介してそのデータ プロバイダーのみを設定すると、正しく動作します。
私を助けてください。

4

1 に答える 1

0

このコードを見てください。「label」だけでなく、「@label」を labelField として使用する必要があると思います

ここに画像の説明を入力

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/mx" 
           minWidth="955" minHeight="600" creationComplete="init()">
<fx:Script>
    <![CDATA[
        import mx.controls.Tree;
        [Bindable]private var xml:XML = new XML(
            <item label="root">
                <item label="Section A">
                  <item label="Section A.1"/>
                  <item label="Section A.2"/>
                  <item label="Section A.3"/>
                </item>
                <item label="Section B">
                  <item label="Section B.1"/>
                  <item label="Section B.2"/>
                  <item label="Section B.3"/>
                </item>
            </item>
        );

        private function init():void
        {
            var customTree1:Tree = new Tree();

            customTree1.dataProvider = xml;
            customTree1.labelField = "label";
            customTree1.width = 200;
            customTree1.height = 300;

            vgMain1.addElement(customTree1);


            var customTree2:Tree = new Tree();

            customTree2.dataProvider = xml;
            customTree2.labelField = "@label";
            customTree2.width = 200;
            customTree2.height = 300;

            vgMain2.addElement(customTree2);

        }
    ]]>
</fx:Script>

<s:HGroup top="20" left="20" width="600" height="300">

    <s:VGroup width="200" height="100%">
        <s:Label text="MXML Tree"/>
        <mx:Tree dataProvider="{xml}" labelField="@label" width="100%" height="300"/>
    </s:VGroup>

    <s:VGroup id="vgMain1" width="200" height="100%">
        <s:Label text="AS Tree with 'label'"/>
    </s:VGroup>

    <s:VGroup id="vgMain2" width="200" height="100%">
        <s:Label text="AS Tree with '@label'"/>
    </s:VGroup>

</s:HGroup> 
</s:Application>
于 2013-06-12T09:43:52.423 に答える