- 浏览: 31479 次
- 性别:
- 来自: 西安
文章分类
最新评论
1.主文件
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- http://www.myflexhero.com/share/flex3-mx/flex-mx-core-components/flex-mx-ui-controls/flex-mx-tree-and-datagrid-controls/604 --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="com.future.component.*" height="500" verticalGap="0" viewSourceURL="srcview/index.html"> <mx:Script> <![CDATA[ import mx.controls.Alert; private var arr:Array = [ {label:"未下发工单",value:"1"}, {label:"已处理工单",value:"2"}, {label:"已关闭工单",value:"3"}, ]; private function selectInfo():void{ for each(var obj:Object in dg.selectedItems){ Alert.show(obj.value); } } ]]> </mx:Script> <local:CheckBoxDataGrid id="dg" dataProvider="{arr}" horizontalScrollPolicy="on" allowMultipleSelection="true"> <local:columns> <mx:DataGridColumn width="20" sortable="false" itemRenderer="com.future.component.CheckBoxRenderer" headerRenderer="com.future.component.CheckBoxHeaderRenderer"/> <mx:DataGridColumn dataField="label" headerText="类型" /> </local:columns> </local:CheckBoxDataGrid> <mx:Button label="显示信息" click="{selectInfo()}"/> </mx:Application>
2.CheckBoxDataGrid.as
package com.future.component { import flash.display.Sprite; import flash.events.KeyboardEvent; import mx.controls.CheckBox; import mx.controls.DataGrid; import mx.controls.listClasses.IListItemRenderer; /** * DataGrid that uses checkboxes for multiple selection */ public class CheckBoxDataGrid extends DataGrid{ override protected function selectItem(item:IListItemRenderer, shiftKey:Boolean, ctrlKey:Boolean, transition:Boolean = true):Boolean{ // only run selection code if a checkbox was hit and always // pretend we're using ctrl selection if (item is CheckBox) return super.selectItem(item, false, true, transition); return false; } // turn off selection indicator override protected function drawSelectionIndicator( indicator:Sprite, x:Number, y:Number, width:Number, height:Number, color:uint, itemRenderer:IListItemRenderer):void{ } // whenever we draw the renderer, make sure we re-eval the checked state override protected function drawItem(item:IListItemRenderer, selected:Boolean = false, highlighted:Boolean = false, caret:Boolean = false, transition:Boolean = false):void{ if (item is CheckBox) CheckBox(item).invalidateProperties(); super.drawItem(item, selected, highlighted, caret, transition); } // fake all keyboard interaction as if it had the ctrl key down override protected function keyDownHandler(event:KeyboardEvent):void{ // this is technically illegal, but works event.ctrlKey = true; event.shiftKey = false; super.keyDownHandler(event); } } }
3.CheckBoxHeaderRenderer.as
package com.future.component { import flash.display.DisplayObject; import flash.events.Event; import flash.events.KeyboardEvent; import flash.events.MouseEvent; import flash.text.TextField; import mx.controls.CheckBox; import mx.controls.dataGridClasses.DataGridListData; import mx.controls.listClasses.ListBase; /** * The Renderer. */ public class CheckBoxHeaderRenderer extends CheckBox{ public function CheckBoxHeaderRenderer(){ focusEnabled = false; } override public function set data(value:Object):void{ invalidateProperties(); } private var addedListener:Boolean = false; private var partiallySelected:Boolean = false; override protected function commitProperties():void{ super.commitProperties(); if (owner is ListBase){ if (!addedListener){ addedListener = true; owner.addEventListener("valueCommit", owner_changeHandler, false, 0, true); owner.addEventListener("change", owner_changeHandler, false, 0, true); } if (ListBase(owner).dataProvider.length == ListBase(owner).selectedItems.length){ selected = true; partiallySelected = false; } else if (ListBase(owner).selectedItems.length == 0){ selected = false; partiallySelected = false; } else{ selected = false; partiallySelected = true; } invalidateDisplayList(); } } /* eat keyboard events, the underlying list will handle them */ override protected function keyDownHandler(event:KeyboardEvent):void{ } /* eat keyboard events, the underlying list will handle them */ override protected function keyUpHandler(event:KeyboardEvent):void{ } override protected function clickHandler(event:MouseEvent):void{ if (selected){ // uncheck everything ListBase(owner).selectedIndex = -1; }else{ var n:int = ListBase(owner).dataProvider.length; var arr:Array = []; for (var i:int = i; i < n; i++) arr.push(i); ListBase(owner).selectedIndices = arr; } } /* center the checkbox if we're in a datagrid */ override protected function updateDisplayList(w:Number, h:Number):void{ super.updateDisplayList(w, h); graphics.clear(); if (listData is DataGridListData){ var n:int = numChildren; for (var i:int = 0; i < n; i++){ var c:DisplayObject = getChildAt(i); if (!(c is TextField)){ c.x = (w - c.width) / 2; c.y = 0; c.alpha = 1; if (partiallySelected){ graphics.beginFill(0x000000); graphics.drawRect(c.x, c.y, c.width, c.height); graphics.endFill(); c.alpha = 0.7; } } } } } private function owner_changeHandler(event:Event):void{ invalidateProperties(); } } }
4.CheckBoxRenderer.as
package com.future.component { import flash.display.DisplayObject; import flash.events.KeyboardEvent; import flash.events.MouseEvent; import flash.text.TextField; import mx.controls.CheckBox; import mx.controls.dataGridClasses.DataGridListData; import mx.controls.listClasses.ListBase; /** * The Renderer. */ public class CheckBoxRenderer extends CheckBox { public function CheckBoxRenderer(){ focusEnabled = false; } override public function set data(value:Object):void{ super.data = value; invalidateProperties(); } override protected function commitProperties():void{ super.commitProperties(); if (owner is ListBase) selected = ListBase(owner).isItemSelected(data); } /* eat keyboard events, the underlying list will handle them */ override protected function keyDownHandler(event:KeyboardEvent):void{ } /* eat keyboard events, the underlying list will handle them */ override protected function keyUpHandler(event:KeyboardEvent):void{ } /* eat mouse events, the underlying list will handle them */ override protected function clickHandler(event:MouseEvent):void{ } /* center the checkbox if we're in a datagrid */ override protected function updateDisplayList(w:Number, h:Number):void{ super.updateDisplayList(w, h); if (listData is DataGridListData){ var n:int = numChildren; for (var i:int = 0; i < n; i++){ var c:DisplayObject = getChildAt(i); if (!(c is TextField)){ c.x = (w - c.width) / 2; c.y = 0; } } } } } }
发表评论
-
test1
2014-08-24 18:38 555test -
test
2014-08-24 09:43 580teste -
4、Flex3自定义事件、事件冒泡及传值、组件间的函数回调及传值
2011-11-24 20:11 1639为了演示事件冒泡,demo写的可能有点繁琐。大家凑合看看。 ... -
3、Flex全屏方式
2011-11-22 23:27 1055<?xml version="1.0" ... -
2、html或jsp中加入flash的方式
2011-11-22 23:26 2880在flex+java的web工程中,html或jsp中可加入f ... -
1、建立java+flex项目
2011-11-22 23:26 8691.向导界面 2. 3.向导界面 ... -
Flex 的基礎架構
2011-11-02 11:29 0Flex 的基础架构 关于flex 基本上常被问到的不外乎就 ... -
基础的数据管理(LCDS)
2011-10-11 14:00 0基础的数据管理(LCDS) ... -
FLEX DateField及DateChooser
2011-11-22 23:27 30171、<mx:DateField yearNaviga ... -
FLEX数据传输中的乱码解决方案
2011-09-22 15:15 0var byteArray:ByteArray = new B ... -
Flex中mx:model标签的运用
2011-09-23 10:09 883使用<mx:Model id="example ... -
ApplicationControlBar组件及creationComplete
2011-09-23 10:10 10801.flex加载完成后,可以调用方法,包括httpservic ...
相关推荐
flex带复选框的datagrid
flex DataGrid复选框源码 flex DataGrid复选框源码 flex DataGrid复选框源码
很简单的datagrid 复选框示例,使用DataGridTemplateColumn列,HeaderTemplate与CellTemplate,标题栏可以全选或反选所有的行
在DataGrid中进行复选框的操作(全选和取消)
flex中动态添加复选框(checkBox)。
flex4 DataGrid 头标签嵌套CheckBox按钮
Flex的DataGrid中使用CheckBox. 大家共同研究
DataGrid控件是.net里面应用非常广泛的控件,在实际工作中,经常需要用户在输入数据的时候能够直接从几个备选数据进行选择,就是要嵌入下拉列表框,或者输入日期和时间,就是用到嵌入的DateTimePacker控件,还有使用...
在FLEX4中开发带有过滤功能的DATAGRID组件
带多选框的DataGrid(AdvancedDataGrid) 表头有全选CheckBox,三种状态:全选、部分选择、无选择 如果改变目录结构,需要在CustomCheckBox.mxml中更改inner.png的路径 使用方法参考“示例参考.txt” --------------...
通过点击datagridview复选框删除所选项
flex 三状态多选 自动分页DataGrid
插件描述:9款表单复选框(Checkbox)与单选按钮美化. 参考示例:http://www.jq22.com/jquery-info5907
Flex中如何创建自定义排序DataGrid控件的例子
flex中dataGrid导出数据到excel中,不存在乱码问题
NULL 博文链接:https://kidd.iteye.com/blog/1329253
flex DataGrid CheckBox 复选框
Datagridview控件没有全选或取消全选的复选框,本资源用VB2015通过扩展DataGridViewColumnHeaderCell类,在列头绘制一个复选框checkbox控件,通过定义checkbox鼠标单击事件来实现行的全选或取消全选。checkbox还可以...
FLEX4实践—动态生成DataGrid及应用客户化itemRenderer.doc
C#winform DataGridView checkbox复选框 实现单选效果,系统默认的是界面中多选,下午没事,做个单选的效果,同时复习下datagridview的常用知识,包含dantGridVIew的常用操作内容,注意事项,代码有点乱,学习。