FLEX AdvancedDataGrid 复选框

本文详细介绍了如何将复选框集成到AdvancedDataGrid中,包括代码实现、事件处理和显示列表更新,旨在简化用户的选择和数据管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

复选框代码:

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;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值