FLEX Tree 控件动态加载
来源:互联网 发布:淘宝卖食品三证多少钱 编辑:程序博客网 时间:2024/06/13 01:28
首先给Tree设置一个数据源:
[Bindable]
private var dataTree:XMLList;
在个当前选中的树节点设置一个变量
private var currentItem:XML;
接着设置与服务器进行连接的HTTPSERVICE 控件
<mx:HTTPService id="treeService" result="ResultHandler(event)" fault="FaultHandler(event)" resultFormat="e4x" url="你自己的服务器端地址">
</mx:HTTPService>
然后在页面上放置一个树控件:
<mx:Tree id="sdbTree" height="100%" width="25%" dataProvider="{dataTree}" showRoot="true" creationComplete="InitSdbTree()" labelField="@label" itemOpening="TreeItemOpening(event)" fontSize="12"></mx:Tree>
InitSdbTree():是对数进行初始化
TreeItemOpening 节点展开时进行触发
private function InitSdbTree():void
{
sdbTree.setStyle("disclosureClosedIcon",Lplus);
sdbTree.setStyle("disclosureOpenIcon",Lminus);
treeService.method="GET";
treeService.request = {"subject":"root"};
var call:AsyncToken = treeService.send();
call.request_params = treeService.request;
}
private function TreeItemOpening(evt:TreeEvent):void
{
if(evt.type == TreeEvent.ITEM_OPENING)
{
var e:TreeEvent = TreeEvent(evt);
currItem = XML(e.item);
if(e.item.@isLoad == "false")
{
e.item.node.@label = "Loading...";
var parameters:*={"subject":e.item.@subject}
if(e.item.@schema != null)
{
parameters['server'] = e.item.@server;
parameters['database'] = e.item.@database;
parameters['schema'] = e.item.@schema;
}
else if(e.item.@database != null)
{
parameters['server']=e.item.@server;
parameters['database'] = e.item.@database;
}
else if(e.item.@server != null)
{
parameters['server']=e.item.@server;
}
treeService.request = parameters;
var call:AsyncToken = treeService.send();
call.request_params = treeService.request;
CursorManager.setBusyCursor();
}
}
}
private function ResultHandler(result:ResultEvent):void
{
if (result.token.request_params['subject']=="root")
{
dataTree = treeService.lastResult.node;
}
else
{
CursorManager.removeBusyCursor();
delete currItem.node[0];
currItem.@isLoad = "true";
var node:XMLList = treeService.lastResult.node;
currItem.node += node;
//currItem.appendChild(node); //注意:如果用这个语句,也能成功,但是数据量大后,速度相当的慢
}
setTimeout(sdbTree.validateNow,100);
}
[Bindable]
private var dataTree:XMLList;
在个当前选中的树节点设置一个变量
private var currentItem:XML;
接着设置与服务器进行连接的HTTPSERVICE 控件
<mx:HTTPService id="treeService" result="ResultHandler(event)" fault="FaultHandler(event)" resultFormat="e4x" url="你自己的服务器端地址">
</mx:HTTPService>
然后在页面上放置一个树控件:
<mx:Tree id="sdbTree" height="100%" width="25%" dataProvider="{dataTree}" showRoot="true" creationComplete="InitSdbTree()" labelField="@label" itemOpening="TreeItemOpening(event)" fontSize="12"></mx:Tree>
InitSdbTree():是对数进行初始化
TreeItemOpening 节点展开时进行触发
private function InitSdbTree():void
{
sdbTree.setStyle("disclosureClosedIcon",Lplus);
sdbTree.setStyle("disclosureOpenIcon",Lminus);
treeService.method="GET";
treeService.request = {"subject":"root"};
var call:AsyncToken = treeService.send();
call.request_params = treeService.request;
}
private function TreeItemOpening(evt:TreeEvent):void
{
if(evt.type == TreeEvent.ITEM_OPENING)
{
var e:TreeEvent = TreeEvent(evt);
currItem = XML(e.item);
if(e.item.@isLoad == "false")
{
e.item.node.@label = "Loading...";
var parameters:*={"subject":e.item.@subject}
if(e.item.@schema != null)
{
parameters['server'] = e.item.@server;
parameters['database'] = e.item.@database;
parameters['schema'] = e.item.@schema;
}
else if(e.item.@database != null)
{
parameters['server']=e.item.@server;
parameters['database'] = e.item.@database;
}
else if(e.item.@server != null)
{
parameters['server']=e.item.@server;
}
treeService.request = parameters;
var call:AsyncToken = treeService.send();
call.request_params = treeService.request;
CursorManager.setBusyCursor();
}
}
}
private function ResultHandler(result:ResultEvent):void
{
if (result.token.request_params['subject']=="root")
{
dataTree = treeService.lastResult.node;
}
else
{
CursorManager.removeBusyCursor();
delete currItem.node[0];
currItem.@isLoad = "true";
var node:XMLList = treeService.lastResult.node;
currItem.node += node;
//currItem.appendChild(node); //注意:如果用这个语句,也能成功,但是数据量大后,速度相当的慢
}
setTimeout(sdbTree.validateNow,100);
}
结果图:
0 0
- FLEX Tree 控件动态加载
- FLEX Tree 控件动态加载
- flex tree 动态加载 以及自动展开
- FLex中Tree与JavaScript交互动态加载数据
- Flex Tree动态数据
- Flex动态加载模块
- flex 动态加载ImageMap
- flex动态加载module
- flex树动态加载
- ext.tree动态加载
- easyui tree动态加载
- easyui tree动态加载
- flex的tree动态加载大量数据与滚动条相关的问题
- FLEX背景图的动态加载
- Flex动态加载svg图片
- Flex 实现动态加载图片
- 动态的加载控件
- 动态加载用户控件
- Android Fragment 基本介绍
- Flex tree组件数据源、图标等修改
- mac下好用的命令tree的实现
- 大数相乘
- js 弹出全屏窗效果
- FLEX Tree 控件动态加载
- linux操作系统基础(5)网络设置内容
- Django static media template目录设置方法
- 数组去重
- layer-list 实现EditText线性背景
- 第三周 项目5-数组做数据成员(4)
- POJ 3669Meteor Shower(广搜)
- python-SMTP发邮件
- Testing your DVB device