Changer la couleur d'une ligne datagridview

Fermé
Ritus - Modifié le 18 mars 2019 à 11:33
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 - 18 mars 2019 à 13:46
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.
A voir également:

1 réponse

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929
18 mars 2019 à 13:46
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)
?


0