如何更改DataGrid中某一行的背景色是一個(gè)被經(jīng)常問的問題。這個(gè)在Flex2.0中很簡單,只需按照下面的步驟做:
1.創(chuàng)建一個(gè)擴(kuò)展自 mx.controls.DataGrid 的類。這個(gè)類可以是MXML文件或者ActionScript文件,你可以根據(jù)自己的習(xí)慣創(chuàng)建。
2.覆寫 protected 方法
drawRowBackground : override protected function drawRowBackground(s:Sprite, rowIndex:int, y:Number,height:Number, color:uint, dataIndex:int):void {// 這里可以做一些對(duì)數(shù)據(jù)的判斷,然后更改相應(yīng)的顏色。比如color = 0xFF0000; // 調(diào)用super函數(shù)來執(zhí)行更改。 super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);}
3.在你的程序中用你新建的類替代 <mx:DataGrid>。
在 drawRowBackground 方法中你可以對(duì)數(shù)據(jù)做一些判斷。dataIndex 參數(shù)可以用來查看dataProvider 中某一行所顯示的數(shù)據(jù)。例如:假設(shè)你想要的數(shù)值大于1000的行都顯示為綠色:
var item:Object = (dataProvider as ArrayCollection).getItemAt(dataIndex);if( item.quantity > 1000 ) color = 0×00FF00;
就這么簡單。