首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

flex datagrid 嵌checkbox兑现全选与数据存储(非绑定数据源)(2)

2012-11-23 
flex datagrid 嵌checkbox实现全选与数据存储(非绑定数据源)(2)? 回来还是把以前弄得粘在这吧,感觉自己写

flex datagrid 嵌checkbox实现全选与数据存储(非绑定数据源)(2)

? 回来还是把以前弄得粘在这吧,感觉自己写的这些都不能正式用,只是自己写写。

?

? 以前写的http://fogiguiuu.iteye.com/blog/591106,这里稍改下,以前那个用的话比较麻烦。

? 有两个类DgAssist.as是用来存储已选择的需要存储的数据,还有DgCheckBox2.as。

?

// ActionScript filepackage{import flash.display.DisplayObject;import flash.events.Event;import flash.text.TextField;import mx.controls.CheckBox;import mx.controls.DataGrid;import mx.controls.dataGridClasses.DataGridColumn;import mx.events.DataGridEvent;public class DgCheckBox2 extends CheckBox{protected var dgAssist:DgAssist = null;protected var dgData:Object = null;public function DgCheckBox2(){super();this.addEventListener(Event.CHANGE, cgHandler);}//初始化数据protected function initCK():void{if(data != null && data.hasOwnProperty("id")){dgData = data.id;}if(this.parentDocument != null && this.parentDocument.hasOwnProperty("dgAssist")){dgAssist = this.parentDocument.dgAssist;}}override public function set data(value:Object) : void{//若value为DataGridColumn类型,则此checkbox位置在datagrid的head部分,不要赋值给dataif(value is DataGridColumn){this.selected = false;}else{super.data = value;}initCK(); //初始化if(dgAssist != null && dgData != null){if(dgAssist.isInSelected(dgData)){this.selected = true;}else{this.selected = false;}}//初始化状态DataGrid(listData.owner).addEventListener(DataGridEvent.HEADER_RELEASE, sortEventHandler);} //阻止此控件所在列的headerRelease事件的发送private function sortEventHandler(event:DataGridEvent):void{if(event.itemRenderer == this){event.preventDefault();}}//居中显示override protected function updateDisplayList(w:Number, h:Number) : void{super.updateDisplayList(w, h);for(var i:Number=0; i<numChildren; i++){var c:DisplayObject = getChildAt(i);if(!(c is TextField)){c.x = Math.round((w-c.width)/2);c.y = Math.round((h-c.height)/2);}}}//状态改变处理protected function cgHandler(event:Event):void{if(dgAssist != null && dgData != null){if(this.selected == true){dgAssist.addToSelected(dgData);}else{dgAssist.delFromSelected(dgData);}return;}//需要单独存储的情况,数据存储elseif(data != null){dispatchEvent(new Event("DgcChange", true));  return;}//绑定数据源的情况,自己处理事件//---head checkbox---------------------------------------------if(dgData == null){  DgAssist.selectedAll(DataGrid(listData.owner), this.selected);return;}}}}
?

热点排行