2015-06-07 4 views
3

Мне нужно изменить цвет фона ячеек моего gridview, но это не сработает.Как изменить цвет фона ячейки сетки на основе его значения

Protected Sub OnRowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GridView2.RowDataBound 
    If e.Row.RowType = DataControlRowType.DataRow Then 
     For Each er As GridViewRow In GridView2.Rows 
      If er.Cells(4).Text = "Formation" Then 
       er.Cells(4).BackColor = Color.Red 
      End If 
     Next 
    End If 
End Sub 

Как изменить цвет фона ячейки на основе ее значения?

ответ

1

Попробуйте это:

Protected Sub OnRowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GridView2.RowDataBound 
    If e.Row.RowType = DataControlRowType.DataRow Then 
      If e.Row.Cells(4).Text = "Formation" Then 
       e.Row.Cells(4).BackColor = Color.Red 
      End If 
    End If 
End Sub 

поставил также точку останова на

If e.Row.Cells(4).Text = "Formation" Then 

и проверить значение e.Row.Cells(4).Text и убедитесь, что он на самом деле = "Formation", может быть, вам нужно получить значение ярлык, который находится в ячейках (4).

+1

Имейте ввиду, что событие OnRowDataBound запускается для каждой строки в вашем gridview, поэтому не нужно помещать его в цикл foreach. –

1

попробуйте событие CellFormatting и удалите для каждого в нем. Событие запускается для каждой ячейки.

Private Sub grd_CellFormatting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles GridView2.CellFormatting 
    If GridView2.Item(4,e.RowIndex).Value = "Formation" Then 
     e.CellStyle.BackColor = Color.Red 
    End If 
End Sub