Hahne Geschrieben 7. Juli 2008 Geschrieben 7. Juli 2008 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 Zitieren
TDM Geschrieben 7. Juli 2008 Geschrieben 7. Juli 2008 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. Zitieren
Schilcher Geschrieben 7. Juli 2008 Geschrieben 7. Juli 2008 Also ich löse soetwas folgendermaßen: erstelle eine Prozedur die bestimmte Einträge markiertrufe 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 Zitieren
Hahne Geschrieben 9. Juli 2008 Autor Geschrieben 9. Juli 2008 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; } } } Zitieren
Empfohlene Beiträge
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.