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、测试结果:
  

Flex之DataGrid和Tree控件的数据源XML格式的更多相关文章

  1. 【实战项目】【FLEX】#900 实现拖控件功能

    一.功能说明:拖控件的功能(类似FLEX,VS 里面的拖控件). 提示:大家对事件的注册和派发的说法可能不一样.因为在FLEX中和在Java中,叫法有的区别.但是本质是一样的. 注册事件  == 设置 ...

  2. RDIFramework.NET框架Web中datagrid与treegrid控件自动生成右键菜单与列标题右键菜单

    在实际应用中常可以看到数据展示控件有右键菜单的功能,对应的列标题也可以右键弹出快捷菜单设置指定列的显示与隐藏等功能.在我们的RDIFramework.NET Web框架中,只要是使用了EasyUI的D ...

  3. easyui中tree控件添加自定义图标icon

    来源于:http://blog.163.com/lintianhuanhai@126/blog/static/165587366201421704420256/ <!DOCTYPE html&g ...

  4. DWZ (JUI) 教程 tree 控件的选中事件

    DWZ (JUI) 教程 tree 控件的选中事件 先简单说一下流程 第一步 当然是先定义好回调事件了 function checkCallback(json){ ........... ...... ...

  5. webdynpro tree控件使用

    1.  首先创建一个TREE控件 2.  在Tree下面创建一个TREE  NODE  TYPE ,node type 是可以继续展开的,而Item type是无法展开的. 3. 创建node.,下面 ...

  6. antd的Tree控件实现点击展开功能

    antd 的 Tree 控件没有提供点击展开的功能,只能通过左边的三角形实现展开和收起,没办法只好自己实现这个功能. 先看效果 如图实现的是类似 Mac 文件目录形式的结构,有箭头代表是个文件夹,点击 ...

  7. vue+element项目中使用el-dialog弹出Tree控件报错问题

    1. 按正常的点击按钮,显示dialog弹出的Tree控件,然后把该条数据下的已经选中的checkbox , 用setCheckedNodes或者setCheckedKeys方法选择上 , 报下面这个 ...

  8. element-ui tree控件获取当前节点和父节点

    今天使用element-ui 遇到两个问题,第一个问题是获取tree控件的当前节点和父节点, 一开始使用tree控件的getCurrentNode()函数,结果发现返回的是当前节点的data属性,和u ...

  9. ElementUI Tree控件在懒加载模式下的重新加载和模糊查询

    之所以使用懒加载是为了提高性能,而且只有在懒加载模式下默认会给所有显示节点设置展开按钮.leaf也可以做到,但是要操作数据比较麻烦. 要实现懒加载模式下的模糊查询以及重新加载必须要使用data与laz ...

随机推荐

  1. Gumshoe - Microsoft Code Coverage Test Toolset

    Gumshoe - Microsoft Code Coverage Test Toolset 2014-07-17 What is Gumshoe? How to instrument a binar ...

  2. Hadoop集群(第10期副刊)_常用MySQL数据库命令

    1.系统管理 1.1 连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 举例: 例1:连接到本机上的MySQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入 ...

  3. Photoshop图层混合模式计算公式大全(转)

    混合模式可以将两个图层的色彩值紧密结合在一起,从而创造出大量的效果.在这些效果的背后实际是一些简单的数学公式在起作用.下面我将介绍photoshop cs2中所有混合模式的数学计算公式.另外还介绍了不 ...

  4. minimum-moves-to-equal-array-elements

    https://leetcode.com/problems/minimum-moves-to-equal-array-elements/ package com.company; import jav ...

  5. 【温故知新】c#异步编程模型(APM)--使用委托进行异步编程

    当我们用到C#类许多耗时的函数XXX时,总会存在同名的类似BeginXXX,EndXXX这样的函数. 例如Stream抽象类的Read函数就有 public abstract int Read(byt ...

  6. CSS 中浮动的使用

    float none 正常显示 left 左浮动 right 右浮动 clear none 允许两边浮动 left 不允许左边浮动 right 不允许右边浮动 both 不允许两边浮动 <!DO ...

  7. 连接Access数据库查询语句

    --在使用之前注意将“生成”里的“配置管理器”的“配置平台”改成X86 private void button1_Click(object sender, EventArgs e)//查询 { Ole ...

  8. 优雅地使用CodeIgniter 3之Session类库(1)(转)

    相信无数人在使用CI2的Session类库时,遇到各种的坑,各种抱怨,各种不解.在CI中国论坛能搜到大量关于Session类库的提问,说明要想用 好session类库还是得下一番功夫.本文将先从CI2 ...

  9. 对于fmri的hrf血液动力学响应函数的一个很直观的解释-by 西南大学xulei教授

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all;clc; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...

  10. 约束优化方法之拉格朗日乘子法与KKT条件

    引言 本篇文章将详解带有约束条件的最优化问题,约束条件分为等式约束与不等式约束,对于等式约束的优化问题,可以直接应用拉格朗日乘子法去求取最优值:对于含有不等式约束的优化问题,可以转化为在满足 KKT ...