Flex4重写动态更换行背景datagrid

本文介绍如何在Flex4中重写DataGrid控件以实现动态更换行背景。提供了一个名为ColorDataGrid的AS类,该类扩展了DataGrid,并添加了一个rowColorFunction属性,允许用户自定义行背景色。示例代码展示了如何在使用ColorDataGrid时传递一个自定义方法来根据数据项条件改变行背景色。
摘要由CSDN通过智能技术生成

需要重写flex的DataGrid控件,下面直接贴代码。

重写DataGrid控件,AS文件

ColorDataGrid.as

{

import flash.display.Sprite;

import mx.controls.DataGrid;

public class ColorDataGrid extends DataGrid

{

public function ColorDataGrid()

{

super();

}

public var _rowColorFunction:Function;

public function set rowColorFunction(f:Function):void

{

this._rowColorFunction = f;

}

public function get rowColorFunction():Function

{

return this._rowColorFunction;

}

override protected function drawRowBackground(s:Sprite, rowIndex:int,

  y:Number, height:Number, color:uint, dataIndex:int):void

{

var oldColor:uint = color; 

if( this._rowColorFunction != null ){

if(dataProvider!=null && dataIndex < this.dataProvider.length ){

var item:Object = this.dataProvider.getItemAt(dataIndex);

color = this._rowColorFunction.call(this, item, color);

}

}           

super.drawRowBackground(s, rowIndex, y, height, color, dataIndex);

}

}

}

下面是重写控件的使用

<JiHuaXiu:ColorDataGrid  rowColorFunction="colorFunction">

<JiHuaXiu:columns>


</JiHuaXiu:columns>

</JiHuaXiu:ColorDataGrid>

需要在页面中给控件传递一个更改行背景的方法

public function colorFunction(item:Object,color:Number):Number

{

//这里是根据条件重新设置行背景颜色

if(item.TIANSHU<=10 && item.TIANSHU!="")

{

color=0xf4fd04;

}

return color;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值