Zum Inhalt springen

bestimmte GridView-Einträge farblich kennzeichnen


Empfohlene Beiträge

Geschrieben

Hallo!

Ich habe ein kleines Problem. Und zwar habe ich ein GridView-Control welches Daten aus einer Datenbank holt. Jetzt wollte ich das so programmieren, dass wenn ein bestimmer Wert aus der Datenbank auf true ist die betroffene Zeile im GridView-Control farblich dargestellt wird. Habt ihr ein paar Infos für mich?

Danke!

Gruß

Michi

Geschrieben

Es gibt für die Zellen meist einen CellStyle, ich verwende zwar mehr DataGridView, aber das müsste hier auch gehen.

Dabei einfach die Eigenschaften für die Hintergrund Farbe setzen und schon ist eine Zelle eingefärbt.

Geschrieben

Also ich löse soetwas folgendermaßen:

  • erstelle eine Prozedur die bestimmte Einträge markiert
  • rufe diese Prozedur in der Methode PreRender des GridViews auf


  Protected Sub markiereEintraege()

       	 'Durchlaufe jede Zeile des GridViews

	 For Each gvr As GridViewRow In Me.GV1.Rows


            'Wenn Wert in Zelle an Index(3) kleiner 18 (Alter)

            If CInt(gvr.Cells(3).Text) < 18 Then

                gvr.Cells(3).BackColor = Drawing.Color.Yellow

                gvr.Cells(3).ForeColor = Drawing.Color.Red


            End If


        Next

    End Sub


   'PreRender Methode des GridViews

   Protected Sub GV1_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles GV1.PreRender

        'rufe Prozedur markiereEintraege() auf

        markiereEintraege()

    End Sub

In diesem Beispiel wird die Zelle mit einer anderen Hintergrundfarbe und Schriftfarbe belegt, wenn in der 4. Spalte des GridViews ein Wert steht, der kleiner als 18 ist.

Ich hoffe, dass mein Posting hilfreich war.

LG

Rainer

Geschrieben

So, danke für eure Tips aber hab jetzt noch eine bessere Methode gefunden.

Und zwar hat das GridView ein Event Namens DataRowBound. Dieses Event wird nach jeder neu hinzugefügten Zeile ausgeführt. Nun habe ich folgendes gemacht:


protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)

    {


        [COLOR="YellowGreen"]//Prüft ob RowType ein DataRow ist (kein Header oder Footer)[/COLOR]

        if (e.Row.RowType == DataControlRowType.DataRow)

        {


            [COLOR="YellowGreen"]//Prüft ob die Checkbox auf True ist[/COLOR]

            if (((CheckBox)e.Row.Cells[7].Controls[0]).Checked)

            {


                [COLOR="YellowGreen"]//Formatierung der Zeile[/COLOR]

                e.Row.BackColor = System.Drawing.Color.Beige;

                e.Row.Font.Bold = true;


            }

        }

    }

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...