- 浏览: 786187 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (573)
- Java基础 (76)
- C++基础 (5)
- hibernate (5)
- struts (4)
- spring (1)
- webservice (7)
- AjaX基础 (0)
- JS脚本 (53)
- 正则表达式 (5)
- html脚本 (30)
- 数据库基础 (54)
- 工作相关 (49)
- 其他 (30)
- Linux (9)
- web服务器 (17)
- JSP (13)
- eclipse (6)
- 面试题相关 (20)
- XML (3)
- Apache common (2)
- 生活 (35)
- VMware (1)
- log4j (9)
- BeanUtils (2)
- 设计模式 (3)
- UML (1)
- UNIX (1)
- ibats (5)
- GT-Grid (17)
- ABAP学习 (17)
- ABAP (35)
- ABAP--ALV (11)
- ABAP--WEBDIMPRO (0)
- abap-sample (1)
- BEMS (2)
- flex (33)
- GIS技术 (3)
最新评论
网上遇到很多需要在Tree控件添加CheckBox等控件的问题, 本以为把Tree的itemRenderer设置成mx.controls.CheckBox 就可以完事了, 但是试了之后才发现没有这么简单 . . .
今天看了Tree的源码, Tree在初始化的时候默认给自己设置itemRenderer属性. 此属性值也是Flex现成的:mx.controls.treeClasses.TreeItemRenderer.
它内部分为三部分:1,icon也是就三角形的小图标. 2,disclosureIcon文件夹图标. 3,label显示的文字. 我只要在label前面加上一个CheckBox就行了.
于是我写了一个类:TreeCheckBoxRenderer继承mx.controls.treeClasses.TreeItemRenderer源码如下:
测试文件如下:
注意:selected属性很重要, 此属性在数据源内, 标致当前节点的CheckBox是否选中.点击CheckBox会自动改变响应的数据源. 如果想知道哪些被选中的话, 就遍历Tree的dataProvider吧~
谨以此文贡献给战斗在RIA第一线的兄弟姐妹们.
今天看了Tree的源码, Tree在初始化的时候默认给自己设置itemRenderer属性. 此属性值也是Flex现成的:mx.controls.treeClasses.TreeItemRenderer.
它内部分为三部分:1,icon也是就三角形的小图标. 2,disclosureIcon文件夹图标. 3,label显示的文字. 我只要在label前面加上一个CheckBox就行了.
于是我写了一个类:TreeCheckBoxRenderer继承mx.controls.treeClasses.TreeItemRenderer源码如下:
package com.montage.controls.treeClasses { import flash.events.Event; import mx.controls.CheckBox; import mx.controls.treeClasses.TreeItemRenderer; import mx.controls.treeClasses.TreeListData; /** * 支持CheckBox的TreeItemRenderer * @author Montage */ public class TreeCheckBoxRenderer extends TreeItemRenderer { public function TreeCheckBoxRenderer() { super(); } /** * 表示CheckBox控件从data中所取数据的字段 */ private var _selectedField:String = "selected"; protected var checkBox:CheckBox; /** * 构建CheckBox */ override protected function createChildren():void { super.createChildren(); checkBox = new CheckBox(); addChild( checkBox ); checkBox.addEventListener(Event.CHANGE, changeHandler); } /** * 点击checkbox时,更新dataProvider * @param event */ protected function changeHandler( event:Event ):void { if( data && data[_selectedField] != undefined ) { data[_selectedField] = checkBox.selected; } } /** * 初始化控件时, 给checkbox赋值 */ override protected function commitProperties():void { super.commitProperties(); trace(data[_selectedField]) if( data && data[_selectedField] != undefined ) { checkBox.selected = data[_selectedField]; } else { checkBox.selected = false; } } /** * 重置itemRenderer的宽度 */ override protected function measure():void { super.measure(); measuredWidth += checkBox.getExplicitOrMeasuredWidth(); } /** * 重新排列位置, 将label后移 * @param unscaledWidth * @param unscaledHeight */ override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth, unscaledHeight); var startx:Number = data ? TreeListData( listData ).indent : 0; if (disclosureIcon) { disclosureIcon.x = startx; startx = disclosureIcon.x + disclosureIcon.width; disclosureIcon.setActualSize(disclosureIcon.width, disclosureIcon.height); disclosureIcon.visible = data ? TreeListData( listData ).hasChildren : false; } if (icon) { icon.x = startx; startx = icon.x + icon.measuredWidth; icon.setActualSize(icon.measuredWidth, icon.measuredHeight); } checkBox.move(startx, ( unscaledHeight - checkBox.height ) / 2 ); label.x = startx + checkBox.getExplicitOrMeasuredWidth(); } } }
测试文件如下:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" fontSize="12"> <mx:Script> <![CDATA[ import mx.collections.ArrayCollection; [Bindable] public var collection:ArrayCollection = new ArrayCollection([ { "name" : "上海", "selected":false, "children":[ { "name":"黄浦", "selected":false }, { "name":"浦东", "selected":true }, { "name":"静安", "selected":false }, { "name":"徐汇", "selected":false } ]}, { "name":"北京", "selected":false, "children":[ { "name":"海淀", "selected":false }, { "name":"朝阳", "selected":true }, { "name":"丰台", "selected":false } ]} ]); ]]> </mx:Script> <mx:Tree width="300" height="500" labelField="name" itemRenderer="com.montage.controls.treeClasses.TreeCheckBoxRenderer" dataProvider="{collection}"/> </mx:Application>
注意:selected属性很重要, 此属性在数据源内, 标致当前节点的CheckBox是否选中.点击CheckBox会自动改变响应的数据源. 如果想知道哪些被选中的话, 就遍历Tree的dataProvider吧~
谨以此文贡献给战斗在RIA第一线的兄弟姐妹们.
发表评论
-
便携电脑使用详情
2011-04-03 18:30 865便携机 IBM T410I 配置:I3-380M /2G/3 ... -
Geoserver如何访问shapefile或PostGIS数据库
2010-08-20 13:11 2612数据库, Geoserver, PostGIS, shapef ... -
flex读取post方式的request参数
2010-08-09 21:52 1486目标: 使用flex在不发送请求的情况下,从request中 ... -
flex向struts2(action)传输数据
2010-08-09 21:50 1579目标: 实现从flex页面向后台的服务框架(struts ... -
flex登录
2010-08-05 16:19 943<?xml version="1.0" ... -
GNU、GPL和LGPL
2010-07-30 16:52 12151.GNU 和 Linux 的关系 GN ... -
计算机世界里的法律:软件使用许可的一些知识
2010-07-30 16:43 970在Internet上的软件一般 ... -
企业用户合法使用 GPL/LGPL 自由软件的指导(zz)
2010-07-30 16:39 1368本文给出了一些指导性 ... -
地图服务器的选择
2010-07-30 13:17 1527地图服务器的比较与选 ... -
MapServer学习笔记
2010-07-30 09:49 21681、MapServer简介 M ... -
Mapserver起步
2010-07-29 19:13 1878Mapserver起步 Mapserver是比较著名的 ... -
MapXtreme Java 版 --- 100% 纯Java 地图应用服务器
2010-07-28 13:42 1991企业可以通过地图实现 ... -
开源的地图服务器
2010-07-28 13:24 2039完全商业化的地 ... -
flexbuilder打包swc
2010-07-12 11:12 2734flexbuilder打包swc地址: http://blo ... -
flex 加载图片时的相关问题
2010-07-06 16:31 1183桌面背景布局 居中 平鋪 拉伸 DesktopBack ... -
OpenLayers项目分析
2010-07-02 14:39 1966摘要:OpenLayers 是由 Meta ... -
GIS 标准体系
2010-07-02 12:25 1444GIS 标准体系 我可没想 ... -
三种地理参考信息模型:WMS,WFS,WCS
2010-07-02 12:08 1148关键字: gis wms wfs wcs OGC ... -
Flex的几个值得借鉴的项目
2010-07-01 10:19 1769Flex的几个值得借鉴的项目 1、Merapi 经过近 ... -
台式电脑使用详情
2010-06-29 13:07 848台式电脑使用详情 联想启天 M5650 配置:AMD RS76 ...
相关推荐
在Flex中,Tree组件是用于显示层次结构数据的控件,而"flex带复选框的tree"(Flex CheckboxTree)则是对Tree组件的一种扩展,增加了复选框功能,用户可以对树形结构的节点进行选择或全选操作,常用于权限管理、配置...
在Flex开发中,"flex checkboxtree复选树形下拉框"是一种常见的用户界面组件,它结合了树形结构和复选框的功能,允许用户在层次结构中进行多选操作。这种组件通常用于数据筛选、配置设置或者层级分类的选择场景。在...
`CheckboxTree`和可添加/关闭的`TabPanel`是Flex中常见的组件,用于提供用户友好的交互界面。这篇博客文章《flex checkboxtree 和可增加面板,可关闭的tab页》可能详细讲解了如何在Flex应用中实现这两个功能。 `...
在这个文件中,开发者可能创建了一个`CheckBoxTree`实例,指定了数据源,并绑定了相应的事件处理函数,如`itemClick`或`nodeCheckChange`。同时,MXML文件通常也会包含界面布局和样式设置。 综上所述,`Flex ...
在Flex开发中,CheckBoxTree是一种常用的UI组件,它结合了树形结构和复选框功能,使得用户可以方便地对树节点进行多选操作。在本文中,我们将深入探讨如何在Flex中实现CheckBoxTree,以及相关的关键技术点。 首先,...
在“Flex Tree 中Checkbox”的场景下,我们主要讨论如何在Flex Tree组件中集成Checkbox,以及如何通过Checkbox来获取用户的选中状态。 1. **Flex Tree组件**:Flex Tree是MXML和ActionScript中的一个控件,用于显示...
"Flex Tree + Checkbox级联勾选"是一个重要的功能点,通常出现在数据管理、配置界面或文件管理系统中,允许用户进行批量选择或级联操作。 首先,我们来详细了解一下Flex Tree。Flex Tree是基于Adobe Flex技术的一种...
在Flex 3.5开发中,我们经常遇到需要创建具有交互性和可视复杂性的用户界面,其中一个常见的需求就是构建一个带有复选框的树形结构,也就是所谓的“复选框树”(CheckBoxTree)。这样的控件允许用户通过复选框来选择或...
在Flex开发中,Tree组件和Checkbox控件的结合使用是一个常见的需求,特别是在构建具有层级结构并需要用户进行多选操作的界面时。本插件专为此目的设计,它允许用户在树形结构中通过复选框来选择或取消选择节点,从而...
这个是带有checkbox的tree,下载即可使用哦。
标题提到的“flex Tree checkbox 修改过后”,意味着原生的Flex Tree控件已经进行了自定义修改,以适应带有复选框功能的需求。 在Flex中实现Tree与Checkbox结合的关键点包括: 1. **创建自定义TreeItemRenderer**...
在Flex编程环境中,Tree组件是一种常用的用户界面元素,它用于展示层次结构的数据。在这个特定的场景中,我们关注的是在Flex Tree中集成复选框功能,这为用户提供了一种直观的方式来选择或操作树形结构中的多个节点...
在Flex编程环境中,Tree组件是一种常用的用户界面元素,用于展示层次结构的数据。当我们需要在树形结构中添加复选框(checkbox)功能时,可以实现用户对多项选择的操作,这在数据筛选、配置设置等场景中非常常见。...
在这个场景中,我们关注的是如何在Flex4的Tree控件中添加CheckBox,以便用户可以多选树形结构中的节点。 Tree控件在Flex中用于展示层次结构的数据,它允许用户展开和折叠节点,查看和导航数据结构。在很多情况下,...
CheckBoxTree是一种在图形用户界面(GUI)中常用于数据组织和选择的组件,尤其在Flex框架下非常常见。它结合了复选框(CheckBox)和树形结构(Tree),允许用户以层次化的方式查看和选择数据项。在给定的上下文中,...
flex tree+checkbox可实现级联勾选 修改后 修改CheckTreeDemoRenderer.as这个文件中 while (!cursor.afterLast){ if (cursor.current.@state == STATE_CHECKED) { noChecks++; }else if (cursor.current.@state =...
而当我们谈论"flex tree checkbox"时,这意味着我们要在Tree组件的节点上添加复选框,使得用户可以对每个节点进行多选操作,提高交互性和用户体验。 首先,让我们深入了解Flex Tree组件。Tree组件是基于Adobe Flex ...
本文将深入探讨如何在Flex Tree组件中渲染CheckBox,这在创建具有交互性和选择功能的树状视图时非常有用。通过学习这个主题,开发者可以提升其在Flex应用程序中的用户界面设计能力。 `flex tree 中渲染checkBox`这...