zoukankan      html  css  js  c++  java
  • Flex之DataGrid和Tree控件的数据源XML格式

    1、flex的完整代码:

    <?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="application1_creationCompleteHandler(event)">
        <s:layout>
            <s:BasicLayout/>
        </s:layout>
        <fx:Script>
            <![CDATA[
                import flexunit.utils.ArrayList;
                
                import mx.collections.ArrayCollection;
                import mx.controls.Alert;
                import mx.events.FlexEvent;
                import mx.events.ListEvent;
                import mx.rpc.events.FaultEvent;
                import mx.rpc.events.ResultEvent;
                [Bindable]
                private var treeData:XML;
                
                private var dgData:ArrayCollection = new ArrayCollection();
                private var dgXml:XML = new XML();
                public var xmlList:ArrayList = new ArrayList();
    
                protected function application1_creationCompleteHandler(event:FlexEvent):void
                {
                    httpTree.send();//发送请求            
                  }
    
                protected function httpTree_resultHandler(event:ResultEvent):void
                {
                    treeData =  event.result as XML;//获取xml数据对象
                       tr.dataProvider = treeData;     //绑定数据
                  }
                
                protected function tree1_itemClickHandler(event:ListEvent):void
                {
                    tNumber.text=tr.selectedItem.@value;
                    tTel.text=tr.selectedItem.@tel;
                }
    
    
                protected function httpTree_faultHandler(event:FaultEvent):void
                {
                    Alert.show(event.fault.toString());
                }
    
                /**
                 * 把XMLList转换成ArrayList,适用于从数据库获得的数据,将XMLList每行数据转换成Object。每列数据转换成Object的同名称属性
                 * @param data 要转换的XMLList
                 * @return 转换之后的ArrayList。
                 */
    
                private function getArrayListFormXmlList(data:XMLList):ArrayList
                {
                    var al:ArrayList=new ArrayList();
                    for(var i:int=0;i<data.length();i++) //取对象
                       { 
                        var obj:Object=new Object();
                        for(var j:int=0;j<data[i].children().length();j++) //取对象下的结点 id,name,age
                        {
                            var dataColoum:String=data[i].children()[j].localName();
                            obj[dataColoum]=data[i].children()[j].toString();
                        }
                        al.addItem(obj);
                     }
                     return al;
                } 
                
                protected function httpDataGrid_resultHandler(event:ResultEvent):void
                {
                    dgXml = event.result as XML;
                    xmlList = getArrayListFormXmlList(dgXml.children());                
                    for(var i:int=0;i<xmlList.length();i++){
                        dgData.addItem({id:xmlList.getItemAt(i).id,name:xmlList.getItemAt(i).name,
                                        age:xmlList.getItemAt(i).age});
                    }
                    dg.dataProvider=dgData;
                }
    
    
                protected function bt_clickHandler(event:MouseEvent):void
                {
                    httpDataGrid.send();
                }
    
            ]]>
        </fx:Script>
        <fx:Declarations>
            <s:HTTPService id="httpTree" resultFormat="e4x" url="tree.xml" fault="httpTree_faultHandler(event)" 
                           result="httpTree_resultHandler(event)"/>
            <s:HTTPService id="httpDataGrid" resultFormat="e4x" url="users.xml" result="httpDataGrid_resultHandler(event)" />
        </fx:Declarations>
        
        <s:Panel x="120" y="49" width="568" height="248">
            <mx:Tree x="11" y="10" id="tr" labelField="@value"  itemClick="tree1_itemClickHandler(event)" width="234"></mx:Tree>
            <s:Label x="267" y="30" text="部门编号"/>
            <s:Label x="295" y="102" text="电话"/>
            <s:TextInput x="342" y="20" id="tNumber"/>
            <s:TextInput x="342" y="92" id="tTel"/>
        </s:Panel>
        <mx:DataGrid x="143" y="305" id="dg">
            <mx:columns>
                <mx:DataGridColumn headerText="编号" dataField="id"/>
                <mx:DataGridColumn headerText="姓名" dataField="name"/>
                <mx:DataGridColumn headerText="年龄" dataField="age"/>
            </mx:columns>
        </mx:DataGrid>
        <s:Button x="496" y="339" label="导入" id="bt" click="bt_clickHandler(event)"/>
    </s:Application>

    2、准备数据源:

      users.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <users>
        <user>
            <id>100001</id>
            <name>张三</name>
            <age>18</age>
        </user>
        <user>
            <id>100002</id>
            <name>李四</name>
            <age>21</age>
        </user>
        <user>
            <id>100003</id>
            <name>赵柯</name>
            <age>22</age>
        </user>
        <user>
            <id>100004</id>
            <name>王利</name>
            <age>19</age>
        </user>
    </users>

      tree.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <data value="通讯录">
        <data1 value="人力资源部">
            <xm value="1001" tel="1299991999"/>
            <xm value="1002" tel="1299992399"/>
            <xm value="1003" tel="1299991993"/>
        </data1>
        <data2 value="技术部">
            <xm value="1001" tel="1299994999"/>
            <xm value="1002" tel="1299994399"/>
            <xm value="1003" tel="1299994993"/>
        </data2>
        <data3 value="开发部">
            <xm value="1001" tel="3299991999"/>
            <xm value="1002" tel="1399992399"/>
            <xm value="1003" tel="1499991993"/>
        </data3>
    </data>

    3、测试结果:
      

  • 相关阅读:
    Using System Partitioning
    startup命令
    [转]Oracle 10g/11g 密码策略 用户口令 大小写敏感
    [转]Oracle DB 加强的数据安全管理
    Scheduling Jobs with Oracle Scheduler
    [转]Oracle DB SQL 计划管理
    Performing Time-Based or Change-Based Incomplete Recovery
    闪回数据归档
    Managing Optimizer Statistics
    性能测试--十个命令迅速发现性能问题
  • 原文地址:https://www.cnblogs.com/lbangel/p/3202297.html
Copyright © 2011-2022 走看看