`
wb1991wb
  • 浏览: 157795 次
  • 来自: 上海
社区版块
存档分类
最新评论

Flex Tree 增删改查

    博客分类:
  • 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"
			   >
	<fx:Script>
		<![CDATA[
			import mx.collections.XMLListCollection;
			import mx.controls.Alert;
			
			[Bindable]
			[Embed(source="images/open.png")]
			public var folderOpen:Class;
			
			[Bindable]
			[Embed(source="images/close.png")]
			public var folderClose:Class;
			
			[Bindable]
			[Embed(source="images/file.png")]
			public var fileInfo:Class;
			
			[Bindable]
			private var company:XML=
			<department>
		    	<department name="部门A">
					<department name="小A" />
					<department name="小B" />
				</department>
				
				<department name="部门B">
					<department name="小C">
						<department name="abc">
							<department name="efg"/>
						</department>
						<department name="opqr"/>
						<department name="小D">
							<department name="ff"/>
						</department>
					</department>
		   		</department>
			</department>;
			
			[Bindable]
			private var companyData:XMLListCollection=new XMLListCollection(company.department);
			
			private function addNode():void
			{
				// 新建节点
				var newNode:XML=<employee/>;
				newNode.@name=empName.text;
				// 添加节点
				var xml:XML=XML(tree1.selectedItem);
				if (xml.length() > 0)
				{
					xml[0].appendChild(newNode);
					tree1.expandChildrenOf(tree1.selectedItem,true);
				}
			}
			
			private function removeNode():void
			{
				if (tree1.selectedItem != null)
				{
					var node:XML=XML(tree1.selectedItem);
					Alert.show("根节点不能删除!","[错误]");
					//if(tree.dataDescriptor.root){
						///Alert.show("根节点不能删除!","[错误]");
						//return;
					//}
					var nodeP:XML=node.parent();
					var childrenList:XMLListCollection=new XMLListCollection(XMLList(nodeP).children());
					var i:Number=childrenList.getItemIndex(node);
					childrenList.removeItemAt(i);
					if(childrenList.length == 0)
						tree1.selectedItem = nodeP;
					else{
						if(i == childrenList.length)
							i = i - 1;
						tree1.selectedItem = childrenList.getItemAt(i)
					}
					
				}else{
					Alert.show("请选中一个节点再进行删除!");
				}
			}
			
			/*
			 * 根据节点名字模糊查询
			*/
			private function findNode(key:String):void {
				//descendants()返回除了根节点以外的所有节点,然后根据条件筛选符合条件的结果集
				var list:XMLList  = company.descendants().(@name.indexOf(key) != -1);
				expandParents(list[0]);
				tree1.selectedItem = list[0];
			}
			/*
			 * 展开
			*/
			private function expandParents(xmlNode:XML):void {
				while (xmlNode.parent() != null) {  
					xmlNode = xmlNode.parent();
					tree1.expandItem(xmlNode,true, false);
				}
			}
			
			//展开所有
			private function expandAll():void {
				tree1.expandChildrenOf(tree1.dataProvider[0],true);
			}
			
			//收起所有
			private function closeAll():void {
				tree1.expandChildrenOf(tree1.dataProvider[0],false);
			}
			
		]]>
	</fx:Script>
	<s:layout>
		<s:HorizontalLayout horizontalAlign="center" verticalAlign="middle"/>
	</s:layout>
	<s:Panel title="实现添加和删除节点"
			  width="450"
			  height="450"
			  >
	<s:layout>
		<s:HorizontalLayout/>
	</s:layout>
		<mx:Tree id="tree1" 
				 dataProvider="{company}" 
				 labelField="@name"
				 height="300" showRoot="false"
				 width="260"
				 defaultLeafIcon="{fileInfo}"
				 folderOpenIcon="{folderOpen}"
				 folderClosedIcon="{folderClose}"
				 />
		<mx:VBox>
			<s:Button label="展开所有" click="expandAll()"/>
			<s:Button label="关闭所有" click="closeAll()"/>
			<mx:Button label="删除节点" click="removeNode();"/>
			<mx:HBox>
				<s:TextInput id="empName"
							  width="60"
							  click="{empName.text = ''}"
							  prompt="新节点名"
							  />
				<mx:Button label="添加节点"
						   click="addNode();"/>
			</mx:HBox>	
			<mx:HBox>
				<s:TextInput id="keyName"
							  width="60"
							  prompt="关键字"/>
				<mx:Button label="查找节点"
						   click="findNode(keyName.text)"/>
			</mx:HBox>
		</mx:VBox>
	</s:Panel>
</s:Application>

 

分享到:
评论

相关推荐

    FLEX最强增删改查

    《FLEX最强增删改查》是一个综合性的示例项目,它涵盖了使用Flex、Spring、Hibernate和Java技术栈进行Web应用程序开发中的基本操作,包括数据的添加(Add)、删除(Delete)、修改(Update)和查询(Query)。...

    flex实现增删改查

    ActionScript3 Flex初级入门,实现Flex增删改查,初级入门的Flex初级程序员可以看看

    flex+java增删改查(spring+jpa)简单例子

    标题 "flex+java增删改查(spring+jpa)简单例子" 暗示了这是一个关于使用Adobe Flex作为前端UI框架,与Java后端结合,实现数据的CRUD(创建、读取、更新、删除)操作的教程。在这个场景中,Java后端使用Spring框架...

    flex增删改查例子(完整版)

    在本压缩包中,"flex增删改查例子(完整版)"是一个示例项目,旨在帮助开发者了解如何在Flex中实现数据库操作的基本功能,包括添加(Add)、删除(Delete)、修改(Update)和查询(Query)数据。 1. **Flex基础...

    flex+java实现增删改查Dome

    本项目“flex+java实现增删改查Dome”是一个基于Flex前端和Java后端的示例,用于演示如何实现数据的CRUD(Create、Read、Update、Delete)操作。下面将详细介绍Flex与Java的集成以及在这个Dome中的具体应用。 Flex...

    flex访问netwebservice增删改查

    标题中的“flex访问netwebservice增删改查”指的是使用Adobe Flex作为前端开发工具,通过调用.NET(ASP.NET)创建的Web服务(Web Service)来实现对数据库的数据操作,包括增加(Add)、删除(Delete)、修改...

    flex 操作xml 实现增删改查

    ### Flex操作XML实现增删改查 在Flex中操作XML数据是进行动态内容处理的关键技能之一。本篇文章将深入探讨如何使用Flex中的XML类来实现对XML数据的增、删、改、查功能。 #### 一、理解XML结构 XML(可扩展标记...

    Flex实战-puremvc+java(spring+hibernate)实现增删改查操作

    《Flex实战:PureMVC+Java(Spring+Hibernate)实现增删改查操作》 在本文中,我们将深入探讨如何利用Flex作为前端展示层,结合后端的Java技术栈,包括Spring和Hibernate,来构建一个完整的CRUD(创建、读取、更新、...

    flex 简单demo ---增删改查

    flex 简单demo ---包含:增,删,改,查的实际应用

    flex的增删改查sample

    flex简单例子,flex简单例子,flex简单例子,flex简单例子,flex简单例子,flex简单例子,flex简单例子,flex简单例子,flex简单例子,flex简单例子,flex简单例子,flex简单例子,flex简单例子,flex简单例子,flex简单例子,flex...

    flex 简单的增删改查 另外添加checkbox grid

    本话题将深入探讨如何使用Flex实现简单的增删改查功能,并添加Checkbox和Grid组件,这些都是在开发数据管理应用时常见的需求。 一、Flex的基础 Flex提供了MXML和ActionScript两种编程语言,MXML用于定义用户界面...

    flex+java 增删改查完整版

    【Flex + Java 实现增删改查功能】 在IT行业中,Flex是一种用于构建富互联网应用程序(RIA)的前端开发框架,而Java则是一种强大的后端编程语言。将Flex与Java结合,可以创建交互性强、用户体验良好的Web应用。本文...

    Flex+servlet增删改查附带视频.rar

    Flex+servlet增删改查附带视频,视频很详细。从建工程开始到完成增加工能、

    Flex 自定义DataGrid,带增删改查等各种功能

    Flex 自定义DataGrid,带增删改查等各种功能.列锁定,序号等各种功能.

    Flex Tree增加虚线连接

    在IT行业中,Flex Tree是一种常见的数据可视化组件,用于展示层级结构的数据,比如组织架构、文件系统或树形菜单。在Flex Tree中,连接线通常用来表示节点间的父子关系,而"Flex Tree增加虚线连接"则涉及到如何为...

    flex基于datagrid控件的增删改查及分页实现

    博文链接可能包含了一个具体的实现示例,通过阅读此博客,开发者可以获得关于如何在Flex中实现增删改查和分页操作的详细步骤。 7. FlexTopTest: 这个压缩包文件名“FlexTopTest”可能包含了实现上述功能的一个测试...

    flex与java实现增删改查

    Flex可以通过调用Java后端的服务接口来实现对数据库的操作,比如增删改查等操作。 #### 实现增删改查功能 对于增删改查功能的具体实现,通常会涉及到以下几个步骤: 1. **增加**: 在Flex端获取用户输入的信息,通过...

    flex通过java实现增删改查

    ### Flex通过Java实现增删改查 在软件开发过程中,增删改查(CRUD)操作是最基础也是最重要的数据操作之一。本文将详细介绍如何利用Java技术实现这些操作,并结合Flex前端技术来展示一个完整的示例。 #### 数据库...

    Flex_cairngorm_4.5做的增删改查效果(包括mysql数据库)

    总之,这个项目展示了如何利用Flex和Cairngorm框架,配合MySQL数据库,实现具有拖拽功能的增删改查应用。通过这样的实践,开发者可以学习到如何组织和管理代码,以及如何高效地处理与后端数据的交互。

    flex net sql2005 增删改查 仿goog百度搜索

    FLEX3+.NET +FLUORINEFX 后台数据sql2005 公司做进销存的一个项目 一、FLUORINEFX经典入门技术 数据库交互 二、查询带有autocomplete功能 三、组件式开发实现切换时的过渡效果 四、ComboBox下拉树形结构 截图请登录...

Global site tag (gtag.js) - Google Analytics