import flash.display.Sprite; import mx.collections.ArrayCollection; import mx.controls.DataGrid; public class SQDataGrid extends DataGrid { public function SQDataGrid() { } protected override function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void { if(dataProvider&&dataIndex < (dataProvider as ArrayCollection).length){ 代码判断出可以取dataProvider 的数据来判断要改变什么颜色 var item:Object = (dataProvider as ArrayCollection).getItemAt(dataIndex); if( item[2] > item[9] ){color=0xFF0000;} } super.drawRowBackground(s,rowIndex,y,height,color,dataIndex); } }
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white"> <mx:ArrayCollection id="arrColl"> <mx:source> <mx:Array> <mx:Object label="Row 1" /> <mx:Object label="Row 2" /> <mx:Object label="Row 3" /> <mx:Object label="Row 4" /> <mx:Object label="Row 5" /> <mx:Object label="Row 6" /> <mx:Object label="Row 7" /> <mx:Object label="Row 8" /> </mx:Array> </mx:source> </mx:ArrayCollection> <mx:List id="list" alternatingItemColors="[0xEEEEEE, 0xDFDFDF]" dataProvider="{arrColl}" rowCount="4" width="200" /> </mx:Application>