Flex高级Datagrid条件行背景颜色

时间:2009-07-03 09:34:25

标签: flex flex3 styles

我正在尝试为Flex 3中的高级数据网格控件设置行背景颜色。是否有人知道使用样式函数是否可行。目前我的样式函数如下:

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;     
         }      

然而背景颜色不会改变。

我听说葡萄藤上我可能需要覆盖一些方法来启用背景颜色属性。

任何帮助都将不胜感激。

关心卡尔

1 个答案:

答案 0 :(得分: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);         
        }           
    }

通过这个你可以从行中获取任何数据,并根据它给出颜色。