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 ...
随机推荐
- 第八篇 EBS实现企业日常业务运管模型的解决方案设计思路
常业务运管模型企业有大有小,各行各业,千差万别,但,其日常业务运管也有相通之处,以典型的制造企业为例,其日常业务运管模型如下图所示: (1)企业日常业务运管模型在市场经济条件下,一个生产型 ...
- 什么是HotSpot VM & 深入理解Java虚拟机
参考 http://book.2cto.com/201306/25434.html 另外,这篇文章也是从一个系列中得出的: <深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)> ...
- string.Format 格式化时间,货币
1.格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元) string.Format("{0:C}",0.2) 结果为:¥0.20 (英文操作系统结果:$0 ...
- 了解Objective-C中NSAutoreleasePool使用方法
本文的目的是来了解Objective-C中NSAutoreleasePool使用方法,Objective-C的Foundation库实际上是种运行级对象系统,与一般的对象语言,例如C++,Java不一 ...
- 事件对象event和计时器
事件对象:event 属性: srcElement事件源对象 keyCode 键盘按键Ascii码 window方法: 定时器: 1)setTimeout();//n毫秒后执行一次 2)setInte ...
- VIM Ctrl-V Conflict with Windows Paste
/************************************************************************************** * VIM Ctrl-V ...
- MySQL集群的可行方案
如果单MySQL的优化始终还是顶不住压力时,这个时候我们就必须考虑MySQL的高可用架构(很多同学也爱说成是MySQL集群)了,目前可行的方案有: 一.MySQL Cluster优势:可用性非常高,性 ...
- Servlet容器的启动(Tomcat为例)
一.容器简介 在tomcat容器等级中,context容器直接管理servlet在容器中的包装类Wrapper,所以Context容器如何运行将直接影响servlet的工作方式. tomcat容器模型 ...
- 手机GUI自动化测试介绍
手机GUI自动化测试介绍 Posted on 2013/05/15 Xing Binbin(测试工程师) 摘要 众所周知,自动化测试可以一定程度上减轻测试人员负担,提高测试效率,并且通过自动化还可以实 ...
- Spring cron 表达式
前言: 最近做的项目有用到定时器,每周只在特定时间运行一次,考虑到Spring Task的简单易用性,就果断选择了,我是配置在配置文件里面,没有用注解@Scheduled,推荐配置,注解虽方便,但更改 ...