FLEX:改变DataGrid行的背景色
2008-11-13
3020
小小贝,小小贝,小小贝,小小贝,小小贝,小小贝,小小贝,小小贝,小小贝,小小贝,小小贝,小小贝,小小贝,小小贝

如何更改DataGrid中某一行的背景色是一个被经常问的问题。这个在Flex2.0中很简单,只需按照下面的步骤做:

1.创建一个扩展自 mx.controls.DataGrid 的类。这个类可以是MXML文件或者ActionScript文件,你可以根据自己的习惯创建。

2.覆写 protected 方法 

drawRowBackground :
override protected function drawRowBackground(s:Sprite, rowIndex:int,
y:Number,height:Number, color:uint, dataIndex:int):void
{// 这里可以做一些对数据的判断,然后更改相应的颜色。比如color = 0xFF0000;
// 调用super函数来执行更改。
super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);}


3.在你的程序中用你新建的类替代 <mx:DataGrid>。

在 drawRowBackground 方法中你可以对数据做一些判断。dataIndex 参数可以用来查看dataProvider 中某一行所显示的数据。例如:假设你想要的数值大于1000的行都显示为绿色:

var item:Object = (dataProvider as ArrayCollection).getItemAt(dataIndex);if( item.quantity > 1000 ) color = 0×00FF00;


就这么简单。

关键字:改变DataGrid行的背景色