Flex的树形控件(Tree Control)中如何通过点击行进行展开/缩进的例子
By Minidxer | April 6, 2008
接下来的例子演示了如何通过点击行来替代点击箭头图标展开/缩进树形控件(Tree Control)中的项目。
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
下面是完整代码(或点击这里察看):
Download: main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="vertical"
- verticalAlign="middle"
- backgroundColor="white">
- <mx:Script>
- <![CDATA[
- import mx.collections.ICollectionView;
- import mx.events.ListEvent;
- private function tree_itemClick(evt:ListEvent):void {
- var item:Object = Tree(evt.currentTarget).selectedItem;
- if (tree.dataDescriptor.isBranch(item)) {
- tree.expandItem(item, !tree.isItemOpen(item), true);
- }
- }
- private function tree_labelFunc(item:XML):String {
- var children:ICollectionView;
- var suffix:String = "";
- if (tree.dataDescriptor.isBranch(item)) {
- children = tree.dataDescriptor.getChildren(item);
- suffix = " (" + children.length + ")";
- }
- return item[tree.labelField] + suffix;
- }
- ]]>
- </mx:Script>
- <mx:XML id="dp">
- <root>
- <folder label="One">
- <folder label="One.A">
- <item label="One.A.1" />
- <item label="One.A.2" />
- <item label="One.A.3" />
- <item label="One.A.4" />
- <item label="One.A.5" />
- </folder>
- <item label="One.1" />
- <item label="One.2" />
- </folder>
- <folder label="Two">
- <item label="Two.1" />
- <folder label="Two.A">
- <item label="Two.A.1" />
- <item label="Two.A.2" />
- </folder>
- </folder>
- </root>
- </mx:XML>
- <mx:Tree id="tree"
- dataProvider="{dp}"
- showRoot="false"
- labelField="@label"
- labelFunction="tree_labelFunc"
- width="300"
- rowCount="6"
- itemClick="tree_itemClick(event);" />
- </mx:Application>
代码:Peter deHaan 翻译/整理/编译:minidxer
Topics:
Flex |
Tags: dataDescriptor, expandItem, Flex, getChildren, isbranch, isItemOpen, Tree., 树形控件