`

如何在Flex的DataGrid中改变行的颜色

    博客分类:
  • Flex
阅读更多
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;
   }


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics