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

Flex之DataGrid和Tree控件的数据源XML格式的更多相关文章
- 【实战项目】【FLEX】#900 实现拖控件功能
一.功能说明:拖控件的功能(类似FLEX,VS 里面的拖控件). 提示:大家对事件的注册和派发的说法可能不一样.因为在FLEX中和在Java中,叫法有的区别.但是本质是一样的. 注册事件 == 设置 ...
- RDIFramework.NET框架Web中datagrid与treegrid控件自动生成右键菜单与列标题右键菜单
在实际应用中常可以看到数据展示控件有右键菜单的功能,对应的列标题也可以右键弹出快捷菜单设置指定列的显示与隐藏等功能.在我们的RDIFramework.NET Web框架中,只要是使用了EasyUI的D ...
- easyui中tree控件添加自定义图标icon
来源于:http://blog.163.com/lintianhuanhai@126/blog/static/165587366201421704420256/ <!DOCTYPE html&g ...
- DWZ (JUI) 教程 tree 控件的选中事件
DWZ (JUI) 教程 tree 控件的选中事件 先简单说一下流程 第一步 当然是先定义好回调事件了 function checkCallback(json){ ........... ...... ...
- webdynpro tree控件使用
1. 首先创建一个TREE控件 2. 在Tree下面创建一个TREE NODE TYPE ,node type 是可以继续展开的,而Item type是无法展开的. 3. 创建node.,下面 ...
- antd的Tree控件实现点击展开功能
antd 的 Tree 控件没有提供点击展开的功能,只能通过左边的三角形实现展开和收起,没办法只好自己实现这个功能. 先看效果 如图实现的是类似 Mac 文件目录形式的结构,有箭头代表是个文件夹,点击 ...
- vue+element项目中使用el-dialog弹出Tree控件报错问题
1. 按正常的点击按钮,显示dialog弹出的Tree控件,然后把该条数据下的已经选中的checkbox , 用setCheckedNodes或者setCheckedKeys方法选择上 , 报下面这个 ...
- element-ui tree控件获取当前节点和父节点
今天使用element-ui 遇到两个问题,第一个问题是获取tree控件的当前节点和父节点, 一开始使用tree控件的getCurrentNode()函数,结果发现返回的是当前节点的data属性,和u ...
- ElementUI Tree控件在懒加载模式下的重新加载和模糊查询
之所以使用懒加载是为了提高性能,而且只有在懒加载模式下默认会给所有显示节点设置展开按钮.leaf也可以做到,但是要操作数据比较麻烦. 要实现懒加载模式下的模糊查询以及重新加载必须要使用data与laz ...
随机推荐
- spring3定时器简单配置
最近在做oa项目中写到一个功能,就是员工每天的签到和签退.当时想了很久都没有想出来,后来自己上网查了一下spring的定时器,然后就有了思路. 下面我贴上自己用到的这个定时器的配置.希望能够和大家一起 ...
- How to: Synchronize Files by Using Managed Code
The examples in this topic focus on the following Sync Framework types: FileSyncProvider FileSyncOpt ...
- Android Fragment 真正的完全解析(上) (转载)
原处: http://blog.csdn.net/lmj623565791/article/details/37970961 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragmen ...
- 浅谈网络爬虫爬js动态加载网页(三)
上一篇讨论了web driver对动态网页的抓取与分析,可以很清楚的看出这是一种集中式处理方式,简单说,就是利用服务器,打开一个真正的brower,然后将需要解析的地址交给浏览器,浏览器去解析,然后将 ...
- [转][TFS] 禁止默认允许多人签出和强制解除签入签出锁
转自:http://blog.xieyc.com/tfs-disable-multiple-check-out-and-force-to-undo-locking/ | 小谢的小站 [TFS] 禁止默 ...
- github.io hexo 安装
/***************************************************************** * github.io hexo 安装 * 说明: * 本文记录h ...
- clearfix 清除浮动的问题
今天看一篇博文,发现其实有很多方法实现清除浮动,各有利弊 采用伪类:after进行后续空制的高度位零的伪类层清除 采用CSS overflow:auto的方式撑高 采用CSS overflow:hid ...
- python练习程序(c100经典例8)
题目: 输出9*9口诀. for i in range(1,10): for j in range(1,i+1): print str(j)+"*"+str(i)+"=& ...
- unity, setting standard shader by script
http://forum.unity3d.com/threads/change-standard-shader-render-mode-in-runtime.318815/
- 解决键盘上符号打出来的和标着的不一样的错误&不能用ctrl+space切换输入法错误
0.右键输入法栏,点设置 1.增加”美式键盘“ 2.切换“默认键盘”为美式 3.删除“英式键盘” 4.高级键设置,改为ctrl+space