2009-07-03 28 views
3

我试图设置在Flex 3中的先进数据网格控件的行背景颜色有谁知道这是否使用样式的功能是可能的。目前我的款式功能如下:的Flex高级的Datagrid条件的行背景颜色

public function myStyleFunc(data:Object, col:AdvancedDataGridColumn):Object 
     { 
      if (data["status"] == "PRICING") 
       return {color:0xFF0000 , fontWeight:"bold" , backgroundColor:0xFF0000}; 


      // Return null if the Artist name does not match. 
      return null;  
     }  

但是背景颜色不变。

我已经听到我可能需要重写一些方法,使背景颜色属性的葡萄藤。

任何帮助,将不胜感激。

问候卡尔

回答

9

我做了一些事情一样,但对我来说颜色也从数据来还,但它会帮助你。 你必须重写DataGrid和覆盖drawRowBackground方法

public class CustomDataGrid extends AdvancedDataGrid 
    { 

     protected override function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void{ 
       var XMLdata:XML=rowNumberToData(dataIndex) as XML;    
       if(XMLdata!=null){   
         if(XMLdata.attribute(Constants.col) != undefined && XMLdata.attribute(Constants.col) != ""){ 
          color=XMLdata.attribute(Constants.col);   
         }else{ 
          color=0xFFFFFF; 
         }        
       }    
       super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);   
     }   
    } 

通过这个,你可以从该行得到任何数据,并根据给它的颜色。

+0

我已经这样做了同样的方式。它工作得很好。 – 2009-07-03 16:23:46