学习tree 控件(基础)

本文介绍了树形控件的常用属性及事件,包括拖放行为、图标设置等,并详细对比了使用XMLListCollection与ArrayCollection作为数据提供者的适用场景。通过实例展示了如何利用XMLListCollection绑定数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习tree 控件:http://www.cxseo.net/web/200903/20/news_contentrid229.html

一、树形控件的常用属性

<wbr><wbr><wbr><wbr><wbr><span></span>1、dragMoveEnabled:是否在拖放的过程中将节点移动,而不是复制。</wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><span></span>2、folderOpenIcon:展开节点时的节点图标</wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><span></span>3、folderClosedIcon:关闭节点时的节点图标</wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><span></span>4、defaultLeafIcon:叶子节点的图标</wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><span></span>5、openItems:在初始化时展开的节点集。</wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><span></span>6、showRoot:是否显示数据中的根节点。XML格式的数据一般包含根节点,此时该属性应为false;Array类型的数据一般不包含根节点,该属性设置无效。</wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><span></span>7、indentation:节点层次缩进量。</wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><span></span>8、doubleClickEnabled:节点是否支持双击事件。</wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><span></span>9、dragEnabled:是否允许拖动节点。</wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><span></span>10、dropEnabled:在拖动节点的过程中是否允许释放,以移动节点。</wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><span></span>11、alternatingItemColors:节点间隔背景色。</wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><span></span>12、<strong style="font-weight:bold"><span style="color:#0000ff; line-height:21px; word-break:normal; word-wrap:normal">labelField</span></strong>:作为标签显示的数据的属性。</wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><span></span>13、<span style="color:#3300ff; line-height:21px; word-break:normal; word-wrap:normal"><strong style="font-weight:bold">labelFunction</strong></span>:自定义节点标签。</wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

二、树形控件的常用事件

<wbr><wbr><wbr><wbr><wbr><span></span>1、itemClick:单击节点触发该事件。</wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><span></span>2、itemDoubleClick:双击节点触发该事件。</wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

使用XMLLISTCOLLECTION 和ARRAYCOLLECTION对象的对比。


你也许想知道,在运行时从远程或本地得来的数据被动态修改的时候,应该使用XMLListCollection对象还是ArrayCollection对象作为Tree空间的数据提供者。


如果你使用的数据源提供成形的XML,并且,你想在Tree控件中操作 XML数据。你应该使用XMLListCollection对象作为数据提供者。当使用MXML标记时,如果数据源是XMLList对象,你应该把它绑定到XMLLsitCollection对象的source属性上,然后把 XMLListCollection对象绑定到Tree控件的dataProvider属性上。

当你想要动态改变对象值时,不要使用XMLList或XML对象直接绑定到Tree控件的dataProvider属性上。当数据源是RPC(远程过程调用)服务的lastResult属性,并且你想使用XML数据,确保RPC组件的resultFormat属性被设置成e4x,当你使用e4x结果格式,最总结果就是XMLList,可以绑定在XMLListCollection对象上。

这里有一个例子。为例数据被动态改变,使用ArrayCollection对象作为Tree控件的数据提供器。当使用MXML标记时,如果你期望动态的改变Arrayl,你不应该把Array对象直接绑定到Tree控件的dataProvider属性上。作为代替,你应该绑定Array到一个ArrayCollection对象的source属性上,然后再把ArrayCollection对象绑定到Tree控件的dataProvider属性上。


当数据源是RPC(远程过程调用)服务的lastResult对象,并且RPC组件的resultFormat属性被成object,你应该使用ArrayUtil.toArray()方法来确保对象是一个Array。然后绑定到ArrayCollection对象上,就像下边的例子所示:

<mx:ArrayCollection
<wbr><wbr><wbr><span></span>id="employeeAC"<br><wbr><wbr><wbr><span></span>source= "{ArrayUtil.toArray(employeeSrv.lastResult.employees.employee)}"/&gt;</wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

例如1:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" viewSourceURL="src/index.html">
<wbr><wbr><br><wbr><wbr><wbr><span></span>&lt;mx:Script&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>&lt;![CDATA[ <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>import mx.collections.XMLListCollection; <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>[Bindable]<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>private var company:XML =<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>&lt;list&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>&lt;department title="Finance" code="200"&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>&lt;employee name="John H"/&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>&lt;employee name="Sam K"/&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>&lt;/department&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>&lt;department title="Operations" code="400"&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>&lt;employee name="Bill C"/&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>&lt;employee name="Jill W"/&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>&lt;/department&gt; <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>&lt;department title="Engineering" code="300"&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值