Avatar billede r_r_n Nybegynder
15. juni 2004 - 09:28 Der er 5 kommentarer og
3 løsninger

Datagrid & farver

X Hej Alle sammen.

Jeg har en tabel i en SQL-database delt op i 100 kolonner, og udvikler i C# og som en webapplikation.
Kan det lade sig gøre at indlæse tabellen i et datagrid dynamisk(Via DataAdapter og DataSet), og ændre cellens baggrund iforhold til det som står i den enkelte kolonne?

Eks opstillet:
De 100 kolonner indeholder svarene fra en test, og der står enten RIGHT eller WRONG. Jeg vil gerne i datagrid'et vise farverne rød eller grøn iforhold til svaret. Kan man via en sqldatareader eller en while sætning få ændret cellens farve?

Mvh. r_r_n
Avatar billede dfens Nybegynder
15. juni 2004 - 09:31 #1
Jeps....

jeg gør det sådan:

        private void dgCaseView_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        {
            string origItem = ColorTranslator.ToHtml(dgCaseView.ItemStyle.BackColor);
            string origAltItem = ColorTranslator.ToHtml(dgCaseView.AlternatingItemStyle.BackColor);

            DataGridItem line = e.Item;

            if (line.ItemType == ListItemType.Item || line.ItemType == ListItemType.AlternatingItem)
            {
                // HighPri Cases
                if (e.Item.Cells[2].Text.Equals("Høj"))
                {
                    e.Item.Cells[2].BackColor = Color.Red;
                    e.Item.Cells[2].ForeColor = Color.White;
                }

                // NormalPri Cases
                if (e.Item.Cells[2].Text.Equals("Normal"))
                {
                    e.Item.Cells[2].BackColor = Color.Green;
                    e.Item.Cells[2].ForeColor = Color.White;
                }

                // Afsluttet Cases
                if (e.Item.Cells[3].Text.Equals("Afsluttet"))
                {
                    line.BackColor =  Color.Gray;
                    line.ForeColor = Color.White;
                    e.Item.Cells[2].BackColor = Color.Gray;
                    e.Item.Cells[2].ForeColor = Color.White;
                }

                // MouseOver
                line.Attributes["onmouseover"] = "this.style.backgroundColor='Gold'";

                if (line.ItemType == ListItemType.Item)
                {
                    if (e.Item.Cells[3].Text.Equals("Afsluttet"))
                    {
                        line.Attributes["onmouseout"] = "this.style.backgroundColor='" + ColorTranslator.ToHtml(Color.Gray) + "'";
                    }
                    else
                    {
                        line.Attributes["onmouseout"] = "this.style.backgroundColor='" + origItem + "'";
                    }
                }
                else
                {
                    if (e.Item.Cells[3].Text.Equals("Afsluttet"))
                    {
                        line.Attributes["onmouseout"] = "this.style.backgroundColor='" + ColorTranslator.ToHtml(Color.Gray) + "'";
                    }
                    else
                    {
                        line.Attributes["onmouseout"] = "this.style.backgroundColor='" + origAltItem + "'";
                    }
                }
            }
        }
Avatar billede r_r_n Nybegynder
15. juni 2004 - 10:16 #2
Kan den tjekke 100 rækker ned og også læse teksten for hver enkelt række og ændre farven i forhold til det??
Avatar billede dfens Nybegynder
15. juni 2004 - 10:19 #3
Er det rækker eller kolonner?
I nedenstående kode checker jeg indholdet af en bestemt celle for hver række, og sætter farven derefter.

                // Afsluttet Cases
                if (e.Item.Cells[3].Text.Equals("Afsluttet"))
                {
                    line.BackColor =  Color.Gray;
                    line.ForeColor = Color.White;
                    e.Item.Cells[2].BackColor = Color.Gray;
                    e.Item.Cells[2].ForeColor = Color.White;
                }
Avatar billede r_r_n Nybegynder
15. juni 2004 - 10:32 #4
Vi har en SQL-Database, hvor der er hundrede rækker ned og vil gerne have en If-sætning, der tjekker hver række individuelt og ændrer farven i forhold til svaret ude i datagriddet, som ses i applikationen.
Avatar billede dfens Nybegynder
15. juni 2004 - 10:59 #5
jammen, så er det jo næsten lige til at kopierer ovenstående....
Avatar billede r_r_n Nybegynder
15. juni 2004 - 11:01 #6
Vi gennemtester lige løsningen og så får du som fortjent... :-)
Avatar billede dfens Nybegynder
15. juni 2004 - 11:20 #7
:-) griner
Avatar billede r_r_n Nybegynder
16. juni 2004 - 08:24 #8
MAnge tak for hjælpen. Det var lige det der manglede :-D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester