`
hao0610
  • 浏览: 127496 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

flex tree 节点的添加、删除。

阅读更多
myXml.xml:
<?xml version="1.0" encoding="utf-8"?>
<novel label="单元">
    
    <part label="第一单元">
        <part label="第一单元例题一">
            <part label="练习题一" ></part>
            <part label="练习题二" ></part>
        </part>
        <part label="第一单元例题二">
            <part label="练习题一" ></part>
            <part label="练习题二" ></part>
        </part>
    </part>
    
    <part label="第二单元">
        <part label="第二单元例题一">
            <part label="练习题一" ></part>
            <part label="练习题二" ></part>
        </part>
    </part>
	
    <part label="第三单元">
		
    </part>
</novel>


[Bindable]
public var selectedNode:XML;
public var resultXML:XML;
//初始化.
public function preInit():void{
	var targetURL : String = "myXml.xml";
	var request : URLRequest = new URLRequest(targetURL);
	var variables : URLLoader = new URLLoader();
	variables.addEventListener(Event.COMPLETE, completeHandler);
	try{
		variables.load(request);
	}catch (error:Error){
		trace("无法加载" + error);
	}
}
private function completeHandler(event:Event):void{
	trace(event.target.data is String);
	selectedNode = new XML(event.target.data);
	myTree.dataProvider = selectedNode;
}
			
public function treeChanged(event:Event):void{
	selectedNode = Tree(event.target).selectedItem as XML;
	player.load();
}
//添加节点.
protected function add_clickHandler(event:MouseEvent):void{
	var xml : XML = selectedNode..*.(@label == txtname.text)[0];
	if (xml){
		var xml1 : XML = new XML("<part label=\"" + txtname1.text + "\"></part>");
		xml.appendChild(xml1);
	}else{
		var array : Array = txtname.text.split("/");
		var asd : XML = selectedNode;
		for (var v:int=0; v < array.length; v++){
			var rr : XML = selectedNode..*.(@label == array[v])[0];
			if (rr){
				asd = rr;
				continue;
			}else{
				rr = new XML("<part label=\"" + array[v] + "\"></part>");
				asd.appendChild(rr);
				asd = rr;
			}
		}
		var firstNodeSon1 : XML = new XML("<part label=\"" + txtname1.text + "\"></part>");
		asd.appendChild(firstNodeSon1);
	}
}
//删除节点
protected function del_clickHandler(event:MouseEvent):void{
	var array:Array=txtname.text.split("/");
	var xml:XML=selectedNode..*.(@label == array[array.length - 1].toString())[0];
	if (xml){
		delete xml..*.(@label == txtname1.text)[0];
		if (xml.part.length() == 0){
		    for(var v : int = array.length - 1; v >= 0; v --){
		        var rr : XML = selectedNode..*.(@label == array[v].toString())[0];
			    if(rr.part.length() == 0){
			        delete selectedNode..*.(@label == array[v].toString())[0];
			    }
		    }
		    delete selectedNode..*.(@label == array[array.length - 1].toString())[0];
		}
	}
}


<mx:Tree id="myTree" 
         width="20%" 
         height="100%" 
         labelField="@label" 
         dataProvider="{selectedNode}" 
         showRoot="false" change="treeChanged(event)"
         alpha="0.5"/>

<s:TextInput id="txtname" text=""/>
<s:TextInput id="txtname1" text=""/>
<s:Button label="添加" click="add_clickHandler(event)"/>
<s:Button label="删除" click="del_clickHandler(event)"/>

添加如下图所示:

删除也可以向上图那样输入, 第二个输入框的值的父级节点或父级的父级等等没子节点时, 会把父级以及以上没有子节点的父级一起删除, 否则不会删除有子节点的父级。

  • 大小: 1.6 KB
  • 大小: 1.4 KB
分享到:
评论
1 楼 neusoft_jerry 2014-05-28  
请楼主参考下这个http://keren.iteye.com/blog/511039

相关推荐

    flex Tree 复选框。

    在实际应用中,你可能还需要处理树结构的初始化加载、节点的动态添加和删除等情况,以确保复选框和父目录状态的同步更新。此外,可以使用 Flex 的 Bindings 或数据驱动的编程方式来简化这部分逻辑。 总之,Flex ...

    Flex tree的用法

    - **虚拟化**: Flex Tree支持虚拟化,只在视口内的节点进行渲染,以提高大数据集下的性能。 - **延迟加载**: 对于深层次的树,可以使用延迟加载策略,只在需要时加载子节点。 6. **Flex Tree的其他功能** - **...

    Flex Tree 中Checkbox

    2. **Checkbox集成**:在Flex Tree中添加Checkbox,通常是为了提供多选功能。这需要自定义TreeItemRenderer,以便在每个节点上显示一个Checkbox。当用户勾选Checkbox时,表示选择了该节点。这个自定义的renderer需要...

    flex tree 教程二

    ItemRenderer是负责绘制单个Tree节点的组件。在MXML中指定`itemRenderer`属性即可。 4. **事件处理**:Tree组件支持多种事件,如`itemClick`(点击节点时触发)、`expand`(节点展开时触发)和`collapse`(节点折叠...

    flex tree+checkbox级联勾选

    Flex Tree是基于Adobe Flex技术的一种组件,它能够展示层次结构的数据,并且支持节点的展开、折叠以及动态加载。每个节点都可以包含子节点,形成一个层级结构。在Flex中,我们可以使用mx.controls.Tree类来创建和...

    flex中 Tree树节点内部拖动实例(此实例限制了什么节点可以拖动及拖动到什么位置)

    这个实例涉及的是在Flex中的Tree组件实现节点的内部拖放功能,这对于创建交互式用户界面,尤其是数据层级结构的展示非常有用。在本文中,我们将详细探讨如何在Flex的Tree组件中实现节点的拖放操作,并且限制可拖动的...

    Flex Tree增加虚线连接

    在Flex Tree中,连接线通常用来表示节点间的父子关系,而"Flex Tree增加虚线连接"则涉及到如何为这些连接线添加虚线样式,以满足特定的视觉效果和设计需求。 在Flex Tree中实现虚线连接,我们需要理解以下几个关键...

    flex tree控件

    综上所述,对Flex Tree控件的定制主要包括自定义节点渲染器以去除默认图标和添加线连接,同时还需要考虑性能优化和用户体验。通过深入理解和实践这些知识点,可以创建出符合项目需求、具有良好交互性的Tree控件。

    Flex Tree快速定位树结点

    在实际应用中,用户可能需要快速找到特定的树节点,这正是"Flex Tree快速定位树结点"这一功能的核心所在。它允许用户通过输入结点名称,然后一键检索,直接在树中高亮或展开对应的结点,极大地提高了用户的操作效率...

    flex Tree checkbox 修改过后的

    为了在每个Tree节点前面添加复选框,你需要创建一个自定义的TreeItemRenderer类。这个类将扩展默认的TreeItemRenderer,并添加一个CheckBox组件。在渲染器中,你需要处理CheckBox的点击事件,以便当用户点击复选框...

    Flex Tree 刷新数据源后,重新打开指定节点的解决方案

    Flex Tree 刷新数据源后,重新打开指定节点的解决方案,不需要延迟等其他手段

    flex tree icon

    在Flex中,你可以通过设置`Icon`属性来为Tree节点添加图标。例如,你可以为根节点、展开节点、折叠节点等设置不同的图标。同时,如果数据源是XML或ArrayCollection,可以通过数据绑定将图标URL与节点数据关联起来。...

    flex tree 修改icon方法

    在这个场景下,我们需要通过编程方式来实现对Tree节点图标的个性化设置。 首先,我们要理解Flex Tree的基本结构。Tree组件由一系列的TreeItemRenderer组成,每个TreeItemRenderer对应树中的一个节点。图标是...

    Flex4的Tree控件加CheckBox

    在这个渲染器中,我们需要处理CheckBox的状态改变,确保当用户点击CheckBox时,对应的Tree节点被选中或取消选中。 2. **配置Tree控件**: 在主MXML文件中,我们需要将Tree控件的itemRenderer属性设置为我们刚刚...

    flex带复选框的tree,flex checkboxtree

    在Flex中,Tree组件是用于显示层次结构数据的控件,而"flex带复选框的tree"(Flex CheckboxTree)则是对Tree组件的一种扩展,增加了复选框功能,用户可以对树形结构的节点进行选择或全选操作,常用于权限管理、配置...

    Flex Tree组件的实线连接线

    Flex Tree组件是Adobe Flex框架中的一个关键元素,用于展示层次结构数据。在默认情况下,Tree组件的节点之间通常使用虚线进行连接,以表示它们之间的层级关系。然而,有时候我们可能需要自定义这些连接线,比如将...

    Flex Tree 的右键菜单事件

    在这个函数中,我们获取当前选中的Tree节点,然后执行相应的删除操作。 另外,需要注意的是,由于Flex默认不支持Tree组件的右键菜单,所以可能需要对Tree组件进行一些自定义设置,例如禁用默认的上下文菜单: ```...

    向Tree空间添加删除XML数据节点_Flex4

    本篇文章将重点讲解如何在Flex4中向Tree组件添加和删除XML数据节点。 Flex4是一款强大的开发工具,它基于ActionScript 3.0和Flash Player或Adobe AIR运行时,用于创建富互联网应用程序(RIA)。Tree组件是Flex中...

    flex中利用tree中的子节点实现的导航

    flex中利用tree中的子节点与自定义组件实现的在同一页面中实现导航

    flex tree 拖拽

    Flex Tree 是一种基于 Adobe Flex 技术实现的可交互树形数据结构组件,它允许用户以图形化的方式查看和操作层次结构数据。在 Flex 应用中,Tree 控件经常用于展示具有层级关系的数据,例如文件系统、组织结构或者...

Global site tag (gtag.js) - Google Analytics