`
Merrygrass
  • 浏览: 166527 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Flex3 JSON 数据填充树形控件

阅读更多

春天到了,我也来种种树!

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()" fontSize="14">
	<mx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			import mx.controls.Alert;
			import com.test.TreeVO;
			
			public var open:Object = new Object();
		
			public var refreshData:Boolean = true;
			
			//原始测试数据
			private var datas:Array = [
						{name:'相册',dir_id:1,parent_id:0,del:0},
						{name:'我的照片',dir_id:2,parent_id:1,del:0},
						{name:'朋友的照片',dir_id:3,parent_id:1,del:0},
						{name:'我的文件',dir_id:4,parent_id:0,del:0},
						{name:'工具软件',dir_id:5,parent_id:4,del:0},
						{name:'系统软件',dir_id:6,parent_id:4,del:0},
						{name:'影音娱乐',dir_id:7,parent_id:0,del:0}
						];
			
			[Bindable]
			private var treeSource:ArrayCollection = new ArrayCollection(); //tree Data
			

			
			private function chg():void{
				Alert.show(menu.selectedItem.parent_id.toString(),"系统消息");
			}
			
			private function init():void{
				if(0 != datas.length){
					for each (var node:TreeVO in datas){
						if(0 == node.parent_id){
							var treeNode:Object = new Object();
							trace("node:" + node.name);
							treeNode.name = node.name;
							treeNode.dir_id = node.dir_id;
							treeNode.parent_id = node.parent_id;
							var sub_arr:ArrayCollection = new ArrayCollection();
							for each (var subnode:TreeVO in datas){
								if(subnode.parent_id == node.dir_id){
									trace("subNode:" + subnode.name);
									sub_arr.addItem(subnode);
								}
							}
							if(0 != sub_arr.length){
								treeNode.children = new Array();
								treeNode.children = sub_arr;
							}
							treeSource.addItem(treeNode);
						}
					}
				}
			}
			
            private function render():void{
                if(refreshData){

                    // Refresh all rows on next update.
                    menu.invalidateList();
                    refreshData = false;
                    menu.openItems = open;
                    // Validate and update the properties and layout
                    // of this object and redraw it, if necessary.
                    menu.validateNow();
                }

            }
		]]>
	</mx:Script>
	<mx:Tree render="render()" showRoot="false" change="chg()" id="menu" dataProvider="{treeSource}" labelField="name" width="300" height="100%">
	</mx:Tree>
</mx:Application>

 

 

package com.test
{
	public class TreeVO
	{
		public function TreeVO()
		{
		}
		private var _name:String;
		private var _dir_id:int;
		private var _parent_id:int;
		
		public function set name(name:String):void{
			this._name = name;
		}
		
		public function get name():String{
			return this._name;
		}
		
		public function set dir_id(dir_id:int):void{
			this._dir_id = dir_id;
		}
		
		public function get dir_id():int{
			return this._dir_id;
		}
		
		public function set parent_id(parent_id:int):void{
			this._parent_id = parent_id;
		}
		
		public function get parent_id():int{
			return this._parent_id;
		}

	}
}

 

  • 大小: 13.3 KB
1
1
分享到:
评论

相关推荐

    Flex4之DataGrid四个的示例【客户端和服务器端】

    1. DataGrid组件简介:DataGrid是Flex中一个功能强大的表格控件,可以显示多列数据,并支持排序、选择、分页等操作。它适用于展示结构化的数据集合,如数据库查询结果或者XML数据。 2. 使用步骤: - 创建DataGrid...

    Flex过滤DataGrid显示的数据

    - `data`:可能包含了用于填充DataGrid的数据文件,如XML或JSON格式。 总的来说,过滤DataGrid显示的数据是提升Flex应用交互性和用户体验的关键技术之一。通过灵活运用客户端和服务器端过滤,以及自定义过滤条件,...

    Flex的DataGrid导出Excel

    在Flex开发中,DataGrid组件是用于展示数据的常用控件,它允许用户以表格的形式查看和操作数据。而“Flex的DataGrid导出Excel”这个主题涉及到的是如何将DataGrid中的数据显示到Microsoft Excel文件中,以便用户可以...

    flex 分页打印 FlexReport

    3. **创建报表模板**:可以使用MXML(Flex的标记语言)来设计报表模板,如`FlexReportDemo.mxml`,这通常涉及到定义数据绑定、列布局和样式规则。 4. **数据源连接**:将数据源与报表关联,可以是XML、JSON、数据库...

    php extjs grid 装载数据

    在PHP和ExtJS框架下,实现数据加载到Grid控件是一项常见的任务,特别是在构建Web应用程序时,用于展示和管理大量的结构化数据。ExtJS Grid是一个强大的数据网格组件,它可以高效地展示和操作表格数据,而PHP则作为...

    flexlib-master.zip

    3. **数据处理**:flexlib提供了一些数据处理工具,如XML处理、JSON解析等。这使得开发者能更轻松地处理服务器返回的数据,提高应用程序的数据交互能力。 4. **事件与通信**:flexlib扩展了Flex的事件处理机制,...

    ext.net GridView 实例详解

    EXT.NET GridView 是一个强大的数据展示控件,常用于构建数据密集型Web应用程序。在EXT.NET框架中,GridView结合了灵活性和高效性,提供了一系列高级功能,如分页、排序、过滤、选择等。本文将深入解析EXT.NET ...

    flexreportdemo

    2. **数据绑定**:FlexReportDemo支持与各种数据源进行绑定,如XML、JSON、数据库等,能够动态地从服务器获取数据并填充到报表中。这使得报表能够实时反映后台数据的变化。 3. **PDF生成**:该组件能够将设计好的...

    PHP应用Flexigrid实例

    Flexigrid是一款强大的、可自定义的表格控件,它提供了灵活的数据分页、排序和搜索功能,适用于网页中的数据管理和展示。在这个实例中,用户将学习如何集成Flexigrid到PHP项目中,以实现动态数据的交互式展示。 ...

    iPlatUI 前台开发指南

    - **扩展知识**:学习table布局、垂直居中和水平居中技巧、负margin的应用场景以及CSS3的flex布局等高级技巧。 2. **HTML入门教程** - **历史与发展**:了解HTML的演变过程。 - **规范与标准**:熟悉HTML5标准及...

    老师整理的extjs学习笔记

    `Ext.tree.TreePanel` 是一个用于展示树形结构数据的组件。它支持异步加载子节点,以及节点的拖放等功能。 **9.2 构建一棵静态的树** 构建一棵静态的树通常需要预先定义好树的数据结构,然后通过 `Ext.tree....

    jquery高级注册表单.zip

    此外,为了提升用户体验,我们通常会结合使用AJAX进行异步数据提交,避免页面刷新,同时利用jQuery的`$.ajax`或`$.getJSON`方法与服务器进行通信,实现数据的动态更新。 总的来说,《jQuery高级注册表单》这个项目...

    HarmonyOS应用开发实战-媒体组件video.docx

    - `object-fit`: 控制视频填充方式,如`fill`表示拉伸以填满容器。 - `width`、`height`: 控制视频的宽度和高度。 **支持的事件**: - `onprepared`: 视频准备好时触发。 - `onstart`: 视频开始播放时触发。 - `...

Global site tag (gtag.js) - Google Analytics