flex 改变DataGrid每行背景色

1,新建类(重写DataGrid)
package myas.control
{
import mx.controls.DataGrid;
import mx.controls.*;

import flash.display.Shape;

import mx.core.FlexShape;

import flash.display.Graphics;

import flash.display.Sprite;

import mx.rpc.events.AbstractEvent;

import mx.collections.ArrayCollection;

import flash.events.Event;

public class RowDataGrid extends DataGrid
{
private var _rowColorFunction:Function;
public function RowDataGrid()
{
super();
}
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
{

if(this.rowColorFunction != null ){

if( 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);

}


}
}

2,调用,
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:control="myas.control.*">
<mx:Script>
<![CDATA[
private function setCustomColor(item:Object, color:uint):uint

{

if( item['c3'] == "r6.c3" )// c3="r6.c3",c4="r7.c4"

{

return 0xFF0033;

}

return color;

}
private var i:uint=179845;
]]>
</mx:Script>
<control:RowDataGrid dataProvider="{arrColl}" rowColorFunction="setCustomColor">
<control:columns>
<mx:DataGridColumn dataField="c1"
headerText="Column 1" />
<mx:DataGridColumn dataField="c2"
headerText="Column 2" />
<mx:DataGridColumn dataField="c3"
headerText="Column 3" />

<mx:DataGridColumn dataField="c4"
headerText="Column 4" />
</control:columns>

</control:RowDataGrid>

<mx:ArrayCollection id="arrColl">
<mx:source>
<mx:Array>
<mx:Object c1="r1.c1" c2="r1.c2" c3="r1.c3" c4="r1.c4"/>
<mx:Object c1="r2.c1" c2="r2.c2" c3="r2.c3" c4="r2.c4"/>
<mx:Object c1="r3.c1" c2="r3.c2" c3="r3.c3" c4="r3.c4"/>
<mx:Object c1="r4.c1" c2="r4.c2" c3="r4.c3" c4="r4.c4"/>
<mx:Object c1="r5.c1" c2="r5.c2" c3="r5.c3" c4="r5.c4"/>
<mx:Object c1="r6.c1" c2="r6.c2" c3="r6.c3" c4="r6.c4"/>
<mx:Object c1="r7.c1" c2="r7.c2" c3="r7.c3" c4="r7.c4"/>
<mx:Object c1="r8.c1" c2="r8.c2" c3="r8.c3" c4="r8.c4"/>
<mx:Object c1="r9.c1" c2="r9.c2" c3="r9.c3" c4="r9.c4"/>
</mx:Array>
</mx:source>
</mx:ArrayCollection>
</mx:Application>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值