Menu

Changer la couleur d'une ligne datagridview

-
Bonjour,
Je suis en stage et je travaille avec ASP.NET, je veux changer la couleur d'une ligne de mon tableau en fonction d'un état, càd si l'état est confirmé la couleur de ligne devient vert, si l'état est annulé la couleur de la ligne devient rouge...

Voici mon code :
protected void GridPlanning_ItemDataBound(object sender, GridItemEventArgs e)
        {
            if (e.Item is GridDataItem)
            {
                // 1 - Récupération de la couleur
                GridDataItem vobj_GridDataItem = (GridDataItem)e.Item;
                TableCell vobj_TableCellColor = (TableCell)(vobj_GridDataItem["M02_COULEUR"]);
                string vstr_HtmlHexColorValue = string.Empty;

                // 2 - Convertion de la couleur OLE en HTML
                if(System.Convert.ToInt32(ConvertDBNull(vobj_TableCellColor.Text, typeof(int))) == 0)
                {
                    vstr_HtmlHexColorValue = "white";
                }



                vstr_HtmlHexColorValue = ColorTranslator.ToHtml(ColorTranslator.FromOle((ConvertDBNull(vobj_TableCellColor.Text, typeof(int)))));
                foreach (TableCell cell in e.Item.Cells)
                {

                    vobj_TableCellColor.Rows[TableCell].BackColor = System.Drawing.Color.Red;
                }


protected void grid_Planning_PreRender(object sender, EventArgs e)
        {
            // Affichage des tailles de colonnes personnalisées
            DataSet vobj_DS = new DataSet();
            var vstr_SQL = string.Format("SELECT C24_NOM, C24_TAILLE FROM CFG_PLANNING_CALENDRIER_C24 WHERE C24_TAILLE > 10 AND C24_USER_C18=" + gint_IdUser);
            vobj_DS = MdGlobalAccess.GetDS(pstrSQL: vstr_SQL);
            foreach (DataRow item in vobj_DS.FirstTableRows())
            {
                string vstrColumnName = ConvertDBNull(item["C24_NOM"], typeof(string));
                int vintColumnWidth = ConvertDBNull(item["C24_TAILLE"], typeof(int));

                // On cherche par HeaderText et non pas via FindByUniqueName à cause des colonnes calculées
                foreach (GridColumn Column in grid_Planning.MasterTableView.Columns)
                {
                    if (Column.HeaderText == vstrColumnName)
                    {
                    
                    }
                }
            }
        }

Merci pour votre aide!

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.


Merci d'y penser dans tes prochains messages.
Afficher la suite 

1 réponse

Messages postés
13412
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2019
346
0
Merci
Bonjour
D’abord, merci à Edouard d’avoir rendu ton code lisible, voir https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code comment faire pour tes prochains messages.

Je ne fais pas d’ASP, mais du C#, oui, donc la relation avec l’interface te laisse faire.

Pour le reste, ceci est il le test pour sacoir de quelle couleur est le fond?
if(System.Convert.ToInt32(ConvertDBNull(vobj_TableCellColor.Text, typeof(int))) == 0)
?


Commenter la réponse de Whismeril