读书人

怎么在Flex的DataGrid中改变行的颜色

发布时间: 2012-10-31 14:37:32 作者: rapoo

如何在Flex的DataGrid中改变行的颜色
1. 定义一个新的类并将这个类放在src下(默认package):

package{  import flash.display.Sprite;    import mx.collections.ArrayCollection;  import mx.controls.DataGrid;  public class RowColorDataGrid extends DataGrid  {    public var rowColorFunction:Function;        override protected function drawRowBackground(      s:Sprite, rowIndex:int, y:Number, height:Number,       color:uint, dataIndex:int):void    {      if(rowColorFunction != null)       {        var item:Object;        if(dataIndex < dataProvider.length)        {          item = dataProvider[dataIndex];        }                if(item)        {          color =             rowColorFunction(item, rowIndex, dataIndex, color);        }      }            super.drawRowBackground(        s, rowIndex, y, height, color, dataIndex);    }  }}


2. 在MXML文件中使用这个新组件:
<local:RowColorDataGrid left="col1:20" right="col2:20" top="row2:25" bottom="row2:25" id="filesDG" rowColorFunction="calcRowColor"/>


3. 同时在MXML文件中添加一个函数calcRowColor来定义改变颜色的逻辑:
   private  function calcRowColor(item:Object, rowIndex:int,                                  dataIndex:int, color:uint):uint {   if(rowIndex==0)       return 0xEE2233;   else       return color;   }


读书人网 >flex

热点推荐