代码之家  ›  专栏  ›  技术社区  ›  Karl

灵活高级数据报条件行背景色

  •  3
  • Karl  · 技术社区  · 15 年前

    我正在尝试在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 回复  |  直到 14 年前
        1
  •  9
  •   Rahul Garg    15 年前

    我做过类似的事情,但在我的例子中,颜色也来自数据,但它会帮助你。 必须重写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);         
            }           
        }
    

    这样,您可以从行中获取任何数据,并根据该数据给出颜色。