Я хочу сделать одно и то же условие для всех строк данных, связанных ячейки, как это сделать?

Я хочу, чтобы все клетки имели свой собственный цвет

например,

  1. status = v ---> желтый цвет
  2. status = PH ---> Цвет Зеленый
  3. статус = H -----> синий
  4. еще статус ----> красный

Это код этой ситуации

Protected Sub gvMonthlyReport_RowDataBound(sender As Object, e As GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.Header Then
        e.Row.CssClass = "HeaderRow"
        e.Row.HorizontalAlign = HorizontalAlign.Center
        e.Row.VerticalAlign = VerticalAlign.Middle
    End If
    'If e.Row.RowType = DataControlRowType.DataRow Then
    '    e.Row.CssClass = "cellRow"
    'End If

    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim cell As TableCell = e.Row.Cells(17)
        Dim status As String = cell.Text

        If status = "v" Then
            cell.BackColor = Color.Yellow

        ElseIf status = "H" Then
            cell.BackColor = Color.Blue

        ElseIf status = "P.H" Then
            cell.BackColor = Color.Green

        Else
            cell.BackColor = Color.Red
        End If
    End If

End Sub

этот код, который я сделал, дает мне выходной цвет только один столбец, как это изображение

выходное изображение

на самом деле я хочу, чтобы все колонки, кто-то может показать мне?

1 ответ

Решение

У вас есть жестко запрограммированная ячейка с номером 17, но вам нужно использовать цикл в событии RowDataBound.

If (e.Row.RowType = DataControlRowType.DataRow) Then

    Dim i As Integer = 0

    Do While (i < e.Row.Cells.Count)
        Dim cell As TableCell = CType(e.Row.Cells(i),TableCell)
        cell.BackColor = Color.Red
        i = (i + 1)
    Loop    

End If
Другие вопросы по тегам