Veröffentlicht 7. Juli 200817 j 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
7. Juli 200817 j 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.
7. Juli 200817 j 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
9. Juli 200817 j 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; } } }
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.