Here's a quick sample I through together for you. There are two files, one is the main application file, and the other is the extended datagrid.
Application ############################# <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" xmlns:local="*"> <mx:Script> <![CDATA[ import mx.collections.ArrayCollection; [Bindable] public var rowColor:uint = 0xffffff; [Bindable] public var vowels:ArrayCollection = new ArrayCollection(["a", "e", "i", "o", "u", "sometimes y"]); private function determineColor(item:Object, rowIndex:int, dataIndex:int, oldColor:uint):uint { return rowColor; } ]]> </mx:Script> <local:ColoredDataGrid id="myDG" dataProvider="{vowels}" rowColorFunction="determineColor"> <local:columns> <mx:DataGridColumn dataField="name"/> <mx:DataGridColumn/> <mx:DataGridColumn/> </local:columns> </local:ColoredDataGrid> <mx:Button label="Make it Blue!!!" click="rowColor = 0x0000ff; myDG.invalidateDisplayList()"/> </mx:Application> ################################## # ColoredDataGrid.as ################################## package { import flash.display.Sprite; import mx.collections.ArrayCollection; import mx.collections.XMLListCollection; import mx.controls.DataGrid; public class ColoredDataGrid extends DataGrid { public var rowColorFunction:Function; public function ColoredDataGrid() { super(); } override protected function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void { if(rowColorFunction != null) { var item:Object; if (dataProvider is ArrayCollection) { item = (dataProvider as ArrayCollection).getItemAt(dataIndex); } color = rowColorFunction( item, rowIndex, dataIndex, color ); } super.drawRowBackground(s,rowIndex,y,height,color,dataIndex); } } } ################################## ----- Original Message ---- From: markgoldin_2000 <[EMAIL PROTECTED]> To: flexcoders@yahoogroups.com Sent: Monday, June 30, 2008 2:21:52 PM Subject: [flexcoders] Re: Draw colored shape Here is my code: //show data dataProvider = xmlTrainBlocksCars; // highlight west receiving invalidateDisplayLi st(); override protected function drawRowBackground( s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int) :void { if (rowIndex == 3) color = 0xFF0000; super.drawRowBackgr ound(s,rowIndex, y,height, color,dataIndex) ; } Nothing is happening. --- In [EMAIL PROTECTED] ups.com, "Alex Harui" <[EMAIL PROTECTED]> wrote: > > Same thing. You would call invalidateDisplayLi st and that will cause > drawRowBackground to be called. > > > > ____________ _________ _________ __ > > From: [EMAIL PROTECTED] ups.com [mailto:[EMAIL PROTECTED] ups.com] On > Behalf Of markgoldin_2000 > Sent: Monday, June 30, 2008 1:38 PM > To: [EMAIL PROTECTED] ups.com > Subject: [flexcoders] Re: Draw colored shape > > > > Alex, > I am trying to create a solution that will allow me to change rows > colors from external to a dataGrid events. For example, from a > contextMenu or from a click of a button. > What would you suggest? > If drawRowBackground it is then how do I execute it on demand? > > --- In [EMAIL PROTECTED] ups.com <mailto:flexcoders% 40yahoogroups. com> > , "Alex Harui" <aharui@> wrote: > > > > Best way to color a row is to override drawRowBackground > > > > > > > > ____________ _________ _________ __ > > > > From: [EMAIL PROTECTED] ups.com <mailto:flexcoders% 40yahoogroups. com> > > [mailto:[EMAIL PROTECTED] ups.com <mailto:flexcoders% 40yahoogroups. com> > ] On > > Behalf Of markgoldin_2000 > > Sent: Monday, June 30, 2008 1:08 PM > > To: [EMAIL PROTECTED] ups.com <mailto:flexcoders% 40yahoogroups. com> > > Subject: [flexcoders] Draw colored shape > > > > > > > > I am trying to use this function to change row's color in DG: > > public function setColor(row: Number, color:Number, > Width:Number) :void > > { > > var g:Graphics = graphics; > > g.clear(); > > g.beginFill( color); > > g.drawRect(x, y, Width, 35); > > g.endFill(); > > } > > I am calling this function after I have asiigned dataSource. > > > > Dont see any coloring though. > > Is it all wrong? > > > > Thanks > > >