复选框代码:
package com.aliyun.moonmm.vm.controls.advanceDataGridClasses { import flash.events.Event; import flash.events.MouseEvent; import mx.collections.ArrayCollection; import mx.controls.AdvancedDataGrid; import mx.controls.CheckBox; import mx.controls.advancedDataGridClasses.AdvancedDataGridGroupItemRenderer; public class AdvancedDataGridGroupItemRendererEx extends AdvancedDataGridGroupItemRenderer { private var checkBox : CheckBox; public function AdvancedDataGridGroupItemRendererEx() { super(); } override protected function createChildren():void { super.createChildren(); checkBox=new CheckBox(); checkBox.addEventListener(MouseEvent.CLICK,onChange); checkBox.x = 4; checkBox.y=label.y + 8; addChild(checkBox); } protected function onChange(e:MouseEvent):void { e.stopPropagation(); var cbx:CheckBox = e.currentTarget as CheckBox; var a:ArrayCollection = this.data.children as ArrayCollection; if(a != null){ for(var i:int =0;i<a.length;i++) { a[i].selected = cbx.selected; a[i].selectedState = cbx.selected; } } data.selectedState = cbx.selected; var d:AdvancedDataGrid = this.owner as AdvancedDataGrid; d.invalidateList(); } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth, unscaledHeight); if (disclosureIcon) { disclosureIcon.x=disclosureIcon.x + 20; } if (icon) { icon.x=icon.x + 20; checkBox.x = icon.x - 30; } label.x=label.x + 20; checkBox.selected = data.selectedState; } } }
[Embed(source="/../src/images/a_icon.png")]
public static const aIcon:Class;
[Embed(source="/../src/images/b_icon.gif")]
public static const bIcon:Class;
[Embed(source="/../src/images/c_win.gif")]
public static const cIcon:Class;
public static function iconFunc(item:Object):Class
{
if(item.hasOwnProperty("id")){
return Constant.aIcon;
}
else{
switch(item.imageType){
case 1:return Constant.aIcon;
case 2:return Constant.bIcon;
default:return Constant.cIcon;
}
}
return null;
}
<mx:AdvancedDataGrid rowHeight="25" id="dataGridList" height="100%" width="100%" iconFunction="iconFunc"> private function iconFunc(item:Object):Class { return Constant.iconFunc(item); }
将复选框加入 AdvancedDataGrid 中
var a:ClassFactory = new ClassFactory(AdvancedDataGridGroupItemRendererEx); dataGridList.groupItemRenderer = a;