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

如(rú)何更改DataGrid中某一行的背景色是一個被經常問(wèn)的問(wèn)題。這個在Flex2.0中很簡單,隻需按照(zhào)下面的步驟做:

1.創建一個擴展自(zì) mx.controls.DataGrid 的類。這個類可(kě)以是MXML文件(jiàn)或者ActionScript文件(jiàn),你(nǐ)可(kě)以根據自(zì)己的習慣創建。

2.覆寫 protected 方法 

drawRowBackground :
override protected function drawRowBackground(s:Sprite, rowIndex:int,
y:Number,height:Number, color:uint, dataIndex:int):void
{// 這裡(lǐ)可(kě)以做一些對數據的判斷,然後更改相(xiàng)應的顔色。比如(rú)color = 0xFF0000;
// 調用super函數來(lái)執行更改。
super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);}


3.在你(nǐ)的程序中用你(nǐ)新建的類替代 <mx:DataGrid>。

在 drawRowBackground 方法中你(nǐ)可(kě)以對數據做一些判斷。dataIndex 參數可(kě)以用來(lái)查看(kàn)dataProvider 中某一行所顯示的數據。例如(rú):假設你(nǐ)想要的數值大(dà)于1000的行都(dōu)顯示爲綠色:

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


就(jiù)這麽簡單。

關鍵字:改變DataGrid行的背景色