flex Tree xmlNode jsonData,更换treeData

 <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
initialize="initTree()"
>
    <mx:Script>
        <![CDATA[
        import mx.controls.Alert;
            [Bindable]
            public var open:Object = new Object();
            [Bindable]

            public var refreshData:Boolean = false;
            [Bindable]
            public var switchObj:Object = new Object();
            [Bindable]

            public var firstObj:Object = new Object();
            [Bindable]

            public var firstObj1:Object = new Object();
            [Bindable]

            public var firstObj2:Object = new Object();
            [Bindable]

            public var provider:String = "firstObj";

            private function initTree():void

            {

                firstObj = new Object();
                firstObj.label = "Foods";
                firstObj.children = new Array();
                firstObj1.label = "Fruits";
                firstObj1.children = new Array();
                firstObj2.label = "Oranges";
                firstObj1.children[0] = firstObj2;
                firstObj.children[0] = firstObj1;
                switchObj = [
                {label:'root1',children:[{label:"firstChilden"},{label:"secondChild"}]}
                ,
                {label:'root2',children:[{label:"firstChilden"},{label:"secondChild"}]}
                ];
            }

            public function changeProvider():void
            {
                open = SampleTree.openItems;
                refreshData = true;
                if (provider == "firstObj")

                {
                    SampleTree.labelField="label";
                    provider = "switchObj";
                    SampleTree.dataProvider = switchObj;
                }
                else if (provider == "switchObj")
                {
                    provider = "xmlObj";
                    SampleTree.labelField="@label";
                    SampleTree.dataProvider = treeData;
                }
                 else if (provider == "xmlObj")
                {
                    provider = "firstObj";
                    SampleTree.labelField="label";
                    SampleTree.dataProvider = firstObj;
                }
            }

            public function renderTree():void{
                if(refreshData){

                    // Refresh all rows on next update.
                    SampleTree.invalidateList();
                    refreshData = false;
                   SampleTree.openItems = open;
                    // Validate and update the properties and layout
                    // of this object and redraw it, if necessary.
                    SampleTree.validateNow();
                }

            }
        ]]>
    </mx:Script>
        <mx:XMLList id="treeData">
    <node label="Mail Box">
        <node label="Inbox">
            <node label="Marketing"/>
            <node label="Product Management"/>
            <node label="Personal"/>
        </node>
        <node label="Outbox">
            <node label="Professional"/>
            <node label="Personal"/>
        </node>
        <node label="Spam"/>
        <node label="Sent"/>
</node>
    </mx:XMLList>
    <mx:Tree id="SampleTree" render="renderTree()"  showRoot="true"  width="250" dataProvider="{firstObj}" labelField="label" />

    <mx:Button label="Change Data Provider" click="changeProvider()"/>
</mx:Application>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值