RowColorDatagrid : Datagrid avec changement de couleur de fond pour les lignes
Updated for Flex 3
Question souvent posée :
Comment changer la couleur de fond d'une ligne suivant des données pour un DataGrid ?
(Changing the background color of a Datagrid Row in Flex)
Voici une solution :
Voir les sources - View the sources
Explication
Il suffit de définir une extension de DataGrid et de rédéfinir la fonction drawRowBackground.
On définit une fonction rowColorFunction qui permet de calculer la couleur de fond de la ligne suivant les données.
L'exemple montre deux fonctions de calcul de couleurs pour un dataprovider de type ArrayCollection ou de type XML.
Voici un exemple de fonction pour un dataprovider de type ArrayCollection :
private function selectSeverityColor1(datagrid:DataGrid, rowIndex:int, color:uint):uint
{
var rColor:uint;
var item:Object = datagrid.dataProvider.getItemAt(rowIndex);
var value:String = item["severity"];
if (value == "Critical") { rColor = 0xFF00FF; }
else if (value == "Major") { rColor = 0xFF0000; }
else rColor =color;
return rColor;
}