ASP VB Изменение цвета ячейки столбца в GridView на основе значения в другом столбце

Я создал gridview с несколькими столбцами в нем. Я хотел бы изменить фоновый столбец столбца «Оценка учителя» на основе значения в столбце «Разница». Основываясь на моем текущем коде ниже, изменение цвета работает, но оно окрашивает всю строку, я хочу применить его только к столбцу «Оценка учителя».

Я бы сделал скриншот, но у меня пока нет представителя, поэтому я попытаюсь показать его текстом:

Target    Teacher Assessment    Difference    (TA column colour)
C+        B-                    1             Green
C+        C-                    -2            Red
C+        C+                    0             Yellow

Вот код, который я сейчас использую для запуска изменения цвета фона, измененного из некоторого кода, найденного в Интернете, в ответ на аналогичную проблему:

Protected Sub gdViewAllopen_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim number = DirectCast(e.Row.DataItem, DataRowView)("Difference").ToString()
        Select Case number
            Case 0
                e.Row.BackColor = System.Drawing.Color.Yellow
            Case Is > 0
                e.Row.BackColor = System.Drawing.Color.Green
            Case Is < 0
                e.Row.BackColor = System.Drawing.Color.Red
        End Select
    End If
End Sub

Разобрался! Так же легко!! Ну ладно, вот это на благо других. Просто добавьте Cells(n) после Row:

e.Row.Cells(2).BackColor = System.Drawing.Color.Yellow


person Matt    schedule 04.04.2013    source источник
comment
Мэтт, почему вы используете ToString() для создания заданного номера переменной, а затем сравниваете его как целое число?   -  person Zeek2    schedule 20.11.2019
comment
Кроме того, не должна ли первая строка выше иметь это в конце: Handles gvManageStore.RowDataBound   -  person Zeek2    schedule 20.11.2019


Ответы (1)


Разобрался! Так же легко!! Ну ладно, вот это на благо других. Просто добавьте Cells(n) после Row:

e.Row.Cells(2).BackColor = System.Drawing.Color.Yellow

person Matt    schedule 05.04.2013