- 浏览: 211139 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zlbdexiaohao:
怎么去掉默认的图标,folderClosedIcon=&quo ...
FLEX 构建完美的带有CheckBox三状态的Tree控件 -
zlbdexiaohao:
看不懂看不懂
FLEX 构建完美的带有CheckBox三状态的Tree控件 -
FYIHDG:
[list][*][list][*][*][list][*][ ...
ImageIO读jpg的时候出现exception:bandOffsets.length is wr -
被剥削的程序员:
你好我在引用你的comboxtree解决问题的时候,发现点击父 ...
ComboBoxTree -
527184687:
[flash=200,200][url][img][list] ...
ext treePanel 更换图标 总结
CSDN上下载的,该Tree是采用XMLList 绑定数据的
CheckTreeDemoRenderer.as
TreeCheckBoxEvent.as (需要的时候采用)
CheckTreeDemo.mxml
CheckTreeDemoRenderer.as
package com.render { import flash.events.MouseEvent; import flash.xml.*; import mx.collections.*; import mx.controls.CheckBox; import mx.controls.Image; import mx.controls.Tree; import mx.controls.listClasses.*; import mx.controls.treeClasses.*; public class CheckTreeDemoRenderer extends TreeItemRenderer { protected var myImage:Image; private var imageWidth:Number = 6; private var imageHeight:Number = 6; private var inner:String = "com/assets/inner.png"; protected var myCheckBox:CheckBox; static private var STATE_SCHRODINGER:String = "schrodinger"; static private var STATE_CHECKED:String = "checked"; static private var STATE_UNCHECKED:String = "unchecked"; public function CheckTreeDemoRenderer () { super(); mouseEnabled = false; } override protected function createChildren():void { super.createChildren(); myCheckBox = new CheckBox(); myCheckBox.setStyle( "verticalAlign", "middle" ); myCheckBox.addEventListener( MouseEvent.CLICK, checkBoxToggleHandler ); addChild(myCheckBox); myImage = new Image(); myImage.source = inner; myImage.addEventListener( MouseEvent.CLICK, imageToggleHandler ); myImage.setStyle( "verticalAlign", "middle" ); addChild(myImage); } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth, unscaledHeight); if(super.data) { if (super.icon != null) { myCheckBox.x = super.icon.x; myCheckBox.y = super.icon.y; myCheckBox.width = super.icon.width; myCheckBox.height = super.icon.height; super.icon.x = myCheckBox.x + myCheckBox.width ; super.label.x = super.icon.x + super.icon.width; } else { myCheckBox.x = super.label.x; myCheckBox.y = super.label.y; myCheckBox.height = super.label.height; super.label.x = myCheckBox.x + myCheckBox.width + myCheckBox.height; } if (data.@state == STATE_SCHRODINGER) { myImage.x = myCheckBox.x + 4; myImage.y = myCheckBox.y + 4; myImage.width = imageWidth; myImage.height = imageHeight; } else { myImage.x = 0; myImage.y = 0; myImage.width = 0; myImage.height = 0; } } } override public function set data(value:Object):void { super.data = value; setCheckState (myCheckBox, value, value.@state); if(TreeListData(super.listData).item.@type == 'dimension') { setStyle("fontStyle", 'italic'); } else { if (this.parent != null) { var _tree:Tree = Tree(this.parent.parent); _tree.setStyle("defaultLeafIcon", null); } setStyle("fontStyle", 'normal'); } } private function toggleParents (item:Object, tree:Tree, state:String):void { if (item == null) { return; } else { item.@state = state; toggleParents(tree.getParentItem(item), tree, getState (tree, tree.getParentItem(item))); } } private function toggleChildren (item:Object, tree:Tree, state:String):void { if (item == null) { return; } else { item.@state = state; var treeData:ITreeDataDescriptor = tree.dataDescriptor; if (treeData.hasChildren(item)) { var children:ICollectionView = treeData.getChildren (item); var cursor:IViewCursor = children.createCursor(); while (!cursor.afterLast) { toggleChildren(cursor.current, tree, state); cursor.moveNext(); } } } } private function getState(tree:Tree, parent:Object):String { // Alert.show("1"); var noChecks:int = 0; var noCats:int = 0; var noUnChecks:int = 0; if (parent != null) { var treeData:ITreeDataDescriptor = tree.dataDescriptor; var cursor:IViewCursor = treeData.getChildren(parent).createCursor(); while (!cursor.afterLast) { if (cursor.current.@state == STATE_CHECKED) { noChecks++; } else if (cursor.current.@state == STATE_UNCHECKED) { noUnChecks++ } else { noCats++; } cursor.moveNext(); } } if ((noChecks > 0 && noUnChecks > 0) || (noCats > 0)) { return STATE_SCHRODINGER; } else if (noChecks > 0) { return STATE_CHECKED; } else { return STATE_UNCHECKED; } } private function imageToggleHandler(event:MouseEvent):void { myCheckBox.selected = !myCheckBox.selected; checkBoxToggleHandler(event); } private function checkBoxToggleHandler(event:MouseEvent):void { if (data) { var myListData:TreeListData = TreeListData(this.listData); var selectedNode:Object = myListData.item; var tree:Tree = Tree(myListData.owner); var toggle:Boolean = myCheckBox.selected; if (toggle) { toggleChildren(data, tree, STATE_CHECKED); } else { toggleChildren(data, tree, STATE_UNCHECKED); } var parent:Object = tree.getParentItem (data); toggleParents (parent, tree, getState (tree, parent)); tree.parent.dispatchEvent(new TreeCheckBoxEvent(TreeCheckBoxEvent.CHECKBOX_CLICK,false,false,data)); } } private function setCheckState (checkBox:CheckBox, value:Object, state:String):void { if (state == STATE_CHECKED) { checkBox.selected = true; } else if (state == STATE_UNCHECKED) { checkBox.selected = false; } else if (state == STATE_SCHRODINGER) { checkBox.selected = false; } } } }
TreeCheckBoxEvent.as (需要的时候采用)
package com.render { import flash.events.Event; public class TreeCheckBoxEvent extends Event { public static const CHECKBOX_CLICK:String = "checkBoxClick"; private var _data:Object; public function get data():Object{ return this._data; } public function set data(data:Object):void{ this._data = data; } public function TreeCheckBoxEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false,data:Object=null) { if(data != null) this._data = data; super(type, bubbles, cancelable); } } }
CheckTreeDemo.mxml
<?xml version="1.0" encoding="iso-8859-1"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init();" > <mx:Script> <![CDATA[ import com.render.TreeCheckBoxEvent; import mx.collections.*; import mx.controls.Alert; [Bindable] public var folderList:XMLList = <> <folder state="unchecked" label="Marketing Collateral" isBranch="true" > <folder state="unchecked" isBranch="true" label="Media, PR, and Communications" > <folder state="unchecked" isBranch="false" label="Article Reprint Disclaimers" /> <folder state="unchecked" isBranch="false" label="Articles Reprints" /> <folder state="unchecked" isBranch="false" label="Interviews and Transcripts" /> <folder state="unchecked" isBranch="false" label="Press Kits" /> <folder state="unchecked" isBranch="false" label="Press Releases" /> <folder state="unchecked" isBranch="false" label="Quick Hits" /> <folder state="unchecked" isBranch="false" label="Rep Talking Points" /> <folder state="unchecked" isBranch="false" label="Special Updates" /> <folder state="unchecked" isBranch="false" label="White Papers" /> </folder> <folder state="unchecked" isBranch="true" label="Forms and Applications" > <folder state="unchecked" isBranch="false" label="Applications" /> <folder state="checked" isBranch="false" label="Forms" /> </folder> </folder> </>; [Bindable] public var folderCollection:XMLListCollection; private function init() : void { this.addEventListener(TreeCheckBoxEvent.CHECKBOX_CLICK,treeCheckBoxHandler); folderCollection = new XMLListCollection(folderList); checkTree.dataProvider = folderCollection; } private function treeCheckBoxHandler(event:TreeCheckBoxEvent):void{ var tempXml:XML = event.data as XML; Alert.show(tempXml.toXMLString(),""); } private function updataDataGrid():void{ Alert.show(checkTree.selectedItem.@label,""); //在此联动Grid } ]]> </mx:Script> <mx:Tree id="checkTree" itemRenderer="com.render.CheckTreeDemoRenderer" change="updataDataGrid()" labelField="@label" width="100%" height="100%" > </mx:Tree> </mx:Application>
发表评论
-
浏览器前进后退按钮切换状态
2010-06-03 16:22 1527Flex browser manager能够让用户通过浏览器的 ... -
Flex3 Module 模块化 应用程序 开发
2010-05-26 15:40 1196模块(Modules) 模块(Module)是创建大型Fle ... -
OUTERDOCUMENT
2010-05-26 14:38 2452scope 也更改了。我的意思是, 从 <mx:Comp ... -
FLEX module的使用
2010-05-26 14:12 1007用FLEX来开发应用难免不 ... -
flex 加载 swf
2010-01-13 13:24 1217<?xml version="1.0&qu ... -
flex下载文件
2010-01-10 10:14 1260<?xml version="1.0&qu ... -
flex最全的表单验证
2010-01-05 14:50 1156<?xml version="1.0&qu ... -
mxml中动态生成组件
2009-12-28 17:09 1402客户那边的API 返回值如下 <list> ... -
TabNavigator
2009-12-20 23:21 935<?xml version="1.0&qu ... -
flex 打开新页面 窗口最大化
2009-12-14 22:12 2317var args:String = "toolb ... -
Flex tree xml的数据源
2009-12-10 23:43 6688<?xml version="1.0&qu ... -
Flex中利用ContextMenu和ContextMenuItem类在DataGrid上创建一个自定义右键弹出菜单的例子
2009-12-10 22:49 3492<?xml version="1.0&qu ... -
flex datagrid分页排序失效
2009-12-09 22:04 1752分页改变了datagrid的数据源,数据源变了视图就跟着变了。 ... -
Flex 弹出窗口的例子
2009-12-09 00:44 1484TitleWindowApp.mxml <mx:Ap ... -
FLEX 构建完美的带有CheckBox三状态的Tree控件
2009-12-08 23:02 7384CheckTree.as package ht.syste ... -
flex blazeds 异步加载tree
2009-12-06 14:48 1537<?xml version="1.0&qu ... -
flex 异步 tree
2009-12-06 14:33 2481例子一 <?xml version="1. ... -
FLEX数据类型和JAVA数据类型对应关系
2009-12-03 22:31 3003类型名 类型描述 Boolean 只有两个值:true 和fa ... -
BlaseDS+Spring 整合配置
2009-11-24 10:54 1223首先到spring网站下载两 ... -
flex blazeDs spring整合
2009-11-24 10:27 14921.新建一个工程Flex_Spring。Ap ...
相关推荐
纯JS+HTML写的checkBox Tree 级联选中 好用无BUG 1 选上级,自动选下级 2 选下级,自动选上级 在网上找的其他例子,都有BUG,本程程序绝对可用,放心下载!
flex tree+checkbox可实现级联勾选
flex tree+checkbox可实现级联勾选 修改后 修改CheckTreeDemoRenderer.as这个文件中 while (!cursor.afterLast){ if (cursor.current.@state == STATE_CHECKED) { noChecks++; }else if (cursor.current.@state =...
TREELIST(带有CHECKBOX功能) 博文链接:https://myhongkongzhen.iteye.com/blog/382861
jQuery的高性能TreeView源码(带CheckBox) 1:支持静态的树,即一次性将全部数据加载到客户端。 2:异步树,即一次只加载一级或若干级节点,子节点可以异步加载数据。 3:Checkbox树(可能是静态树也可能是异步树...
主要介绍了使用jQuery+EasyUI实现CheckBoxTree的级联选中特效的相关资料,需要的朋友可以参考下
一个简单html页面,实现省市的三级级联选择,根据不同情况可以控制不同展现。
js多级联动多选checkbox插件
jsTree的扩展性很好,能够自行配制,容易上手, 它支持 HTML & JSON 数据 和 AJAX 。是完全免费和开源的。 可以配制成普通的树和带选择框的级联树。
tree { data: data checkbox : true cascadeCheck : false onCheck : function node checked { if checked { var parentNode $ "#menuTrees" tree "getParent" node target ; ...
<div id=searchTree> [removed] var treeData = [{ text: Parent 1, nodes: [{ text: Child 1, nodes: [{ text: Grandchild 1 }, { text: Grandchild 2, nodes: [{ text: Grandchild 2-1, nodes: [{ ...
Jquery高效的对Tree操作 1:支持静态的树,即一次性将全部数据加载到客户端。 2:异步树,即一次只加载一级或若干级节点,子节点可以异步加载数据。 3:Checkbox树(可能是静态树也可能是异步树),用于选择(如...
级联树,checkbox 大数据量,支持多种操作 简单易用
autocomplete自动完成、checkbox多选框、cascader级联选择、datepicker日期选择框、form表单、inputnumber数字输入框、input输入框、mentions提及、rate评分、radio单选框、switch开关、slider滑动输入框、select...
Checkbox 多选框 Input 输入框 InputNumber 计数器 Select 选择器 Cascader 级联选择器 Switch 开关 Slider 滑块 TimePicker 时间选择器 DatePicker 日期选择器 DateTimePicker 日期时间选择器 Upload ...
9.2. 带全选的checkbox树形CheckBoxTree 9.3. 带全选的checkbox的grid 9.4. fisheye 9.5. 可以设置时间的日期控件 9.6. JsonView实现用户卡片拖拽与右键菜单 9.7. 下拉列表选择每页显示多少数据 10. 撕裂吧!...
9.2. 带全选的checkbox树形CheckBoxTree 9.3. 带全选的checkbox的grid 9.4. fisheye 9.5. 可以设置时间的日期控件 9.6. JsonView实现用户卡片拖拽与右键菜单 9.7. 下拉列表选择每页显示多少数据 10. 撕裂吧!...
9.2. 带全选的checkbox树形CheckBoxTree 9.3. 带全选的checkbox的grid 9.4. fisheye 9.5. 可以设置时间的日期控件 9.6. JsonView实现用户卡片拖拽与右键菜单 9.7. 下拉列表选择每页显示多少数据 10. 撕裂吧!...