PhilFlash

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 la démo - See the demo

Voir les sources - View the sources

Obtenir les sources dgrowcolor.zip

RowColorDatagrid in Flex

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

xhtml   css   cc   508   aaa
Me connaître  |  Me contacter