http://43451125.blog.163.com/blog/static/4479446720103102140858/文中将ArrayCollection作为Tree的数据源,根据作者的思路,可以将JSON赋予ArrayCollection,以达到将JSON作为数据源的目的。
[align=left][/align]如下代码所示:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
backgroundColor="white" layout="vertical" verticalAlign="middle"
viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import com.esri.ags.utils.JSON;
import mx.controls.Alert;
import mx.events.ListEvent;
protected function tree_itemClickHandler(event:ListEvent):void
{
Alert.show(Tree(event.currentTarget).selectedItem.name);
}
[Bindable]
public var expenses:ArrayCollection = new ArrayCollection([
{id:"node1", name:"node1name",
children:[{id:"n11", name:"n11name"},{id:"n12", name:"n12name"},{id:"n13", name:"n13name"}]},
{id:"node2", name:"node2name",
children:[{id:"n21", name:"n2name"},{id:"n22", name:"n22name",
children:[{id:"n231", name:"n231name"},{id:"n232", name:"n232name"}]}]},
{id:"node3", name:"node3name"}
]);
protected function dd_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
tree.openItems = expenses.getItemAt(0);
}
]]>
</mx:Script>
<mx:Tree id="tree" width="320" dataProvider="{expenses}" itemClick="tree_itemClickHandler(event)"
labelField="id" rowCount="9" showRoot="true"/>
<mx:Button id="dd" click="dd_clickHandler(event)"/>
</mx:Application>
需要注意的是:
1.labelField可以指定json的属性如id或name,该属性需要所有子节点均包含之。
2.子节点需要使用children属性,一定是children属性才能被Tree识别为子节点。
3.在对Tree进行操作时,可以使用额外的JSON包
分享到:
相关推荐
本篇文章将聚焦于如何将ArrayCollection转换为XML数据源,并实现Flex Tree组件的新增、删除和修改功能。以下是详细的解释和步骤。 首先,ArrayCollection是Flex中常用的数据结构,它是一个动态数组,支持数据绑定和...
本文将详细探讨如何使用`ArrayCollection`作为Flex中的`Tree`控件的数据提供者,以替代通常使用的XML数据源。 首先,让我们理解`ArrayCollection`的概念。`ArrayCollection`是Flex中的一个类,它继承自`...
- **XML数据绑定**: Tree组件可以轻松地绑定到XML数据源。XML的层级结构非常适合表示树形结构,每个XML元素对应Tree的一个节点。 - **XMLList和XMLListCollection**: 将XML转换为XMLList或XMLListCollection,然后...
数据源通常是XML或ArrayCollection对象,包含树的所有层级信息。 4. **树节点查找**:使用循环或递归方法遍历数据源,比较每个节点的名称与用户输入的字符串是否匹配。匹配成功则记录该节点的索引或唯一标识。 5. ...
Tree控件的数据源通常是ArrayCollection或XMLListCollection,它们包含一系列对象,每个对象代表树的一个节点。通过数据绑定,我们可以将这些数据对象映射到Tree的可视节点上。 3. 自定义节点图标: 默认情况下,...
同时,如果数据源是XML或ArrayCollection,可以通过数据绑定将图标URL与节点数据关联起来。这样,当数据改变时,图标也会相应更新。 对于博文链接,虽然具体内容未提供,但我们可以推测这可能是一个关于如何在Flex...
3. 数据结构:CheckboxTree的数据源通常是一个数据结构,如ArrayCollection或XML,包含了树形结构的数据。每个节点可能包含一个标识符、文本、子节点列表,以及一个表示是否选中的布尔值。 在提供的压缩包文件中,...
本篇将详细介绍如何为Flex中的Tree组件设置不同的数据源,包括XML、Array和Object。 首先,让我们从XML数据源开始。XML因其结构化的特性,非常适合用来表示层次数据。在Flex中,我们可以使用mx.collections....
1. **数据源**:Tree组件的数据来源于一个数据提供者,它可以是ArrayCollection、XMLListCollection或其他实现了 IList 接口的对象。数据提供者中的每个项目代表Tree中的一个节点,每个节点可以有子节点。 2. **...
首先,Tree组件的基础在于XML数据源。在Flex4中,我们可以使用ArrayCollection或XMLListCollection作为数据提供者,将XML结构转换为可操作的数据模型。在提供的源码中,你可能会看到一个XML文件,其中包含层次化的...
2. **数据提供者**:`dataProvider`是Flex Tree组件用来存储和显示数据的对象,它可以是数组、ArrayCollection或XMLListCollection。在异步加载场景下,dataProvider需要能够动态添加或更新数据。 3. **事件监听**...
在Flex中,Tree组件可以绑定到各种数据源,包括Array,ArrayCollection,以及XML或XMLList。XML因其结构化和易于解析的特性,常被用来存储和传递层次结构的数据,这与Tree组件的展示需求非常匹配。在"TreeExample"中...
要实现动态数据源,我们通常需要创建一个数据模型来存储数据,然后将这个模型绑定到`Tree`组件上。数据模型可以是`ArrayCollection`或者`XMLListCollection`等,它们能方便地处理动态添加、删除或修改数据的操作。当...
在Flex中,Tree的数据源通常是XML或ArrayCollection。对于ArrayCollection,每个元素代表一个树节点,可以包含子节点数组和其他属性。在ComboBox中,我们需要确保当用户选择一个Tree节点时,ComboBox的selectedItem...
在Flex中,我们可以使用XML或ArrayCollection作为数据源。这里我们使用XML,因为XML易于理解和操作,而且在描述层级关系时非常方便。 ```xml <![CDATA[ private var xmlData:XML = 节点1"> 子节点1.1"/> ...
同时,`Tree`组件还支持数据提供者(如ArrayCollection)动态更新,这意味着当数据源发生变化时,Tree会自动更新其视图。 文章可能会详细讲解如何使用MXML或ActionScript创建Tree实例,并绑定数据源。对于源码部分...
Tree组件是基于MX容器的,它支持数据驱动,这意味着我们可以使用ArrayCollection或XML列表来作为数据源。每个树节点都可以包含子节点,并且可以通过展开和折叠操作来显示或隐藏这些子节点。 在Flex3中添加右键菜单...
在本文中,我们将探讨如何使用Flex创建一个基于数据源的Menu Tree,特别是如何利用外部参数来指定数据源,并自定义节点的图标。 首先,让我们分析标题和描述中的关键知识点: 1. **数据源**:在Flex中,数据源通常...
添加节点到Flex Tree主要涉及到两个步骤:创建节点数据模型和将模型添加到数据源。以下是一个简单的示例: ```actionscript // 创建新的节点数据模型 var newNodeData:Object = {label: "新节点", data: "这是新...
flex自定义用ArrayCollection做数据源的带checkbox的tree(功能强大的完美版^_^) .