2009-07-03 20 views
3

J'essaie de définir la couleur d'arrière-plan de ligne pour le contrôle de grille de données avancé dans Flex 3. Est-ce que quelqu'un sait si cela est possible en utilisant une fonction de style. Actuellement, ma fonction de style ressemble à:Condition de données Flex avancées Ligne Couleur d'arrière-plan

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

Cependant, la couleur d'arrière-plan ne change pas.

J'ai entendu parler de la vigne que j'ai besoin de remplacer certaines méthodes pour activer la propriété de couleur d'arrière-plan.

Toute aide serait appréciée.

Cordialement Karl

Répondre

9

je l'ai fait quelque chose comme ça, mais dans ma couleur de cas a également été en provenance de données aussi, mais il vous aidera. Vous devez remplacer le Datagrid et passer outre drawRowBackground méthode

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

En cela, vous pouvez obtenir toutes les données de la ligne et selon lui donner la couleur.

+0

Je l'ai fait de la même manière. Cela fonctionne vraiment bien. –

Questions connexes