ASP.NET 列排序时 GridView BackColor 更新

ASP.NET GridView BackColor update on column sort

我有一个 GridView 绑定到 SQL 数据库中的一个 table,以便它在登录我的网站后加载到页面上。

首次加载带有 GridView 的页面时。我遍历 table 上的行并根据它的 "Status" 列更改每一行的 BackColor (即,如果它是 "Incomplete" 则将其设为红色或绿色,如果它是 "Complete").当您按另一列对 table 进行排序时,BackColor 就会消失。

我尝试 运行 相同的函数遍历行并更改 GridView1_Sorted 事件中的所有 BackColors,但 table 仍然没有任何颜色变化.使用 GridView1_Load 事件也是如此。但是,添加一个按钮并将该按钮的点击绑定到相同的格式代码可以让我在排序后应用 BackColors

这告诉我,我可能误解了 Sorted 事件的运作方式。谁能告诉我如何正确设置 GridView 以便我可以按某些列排序并仍然重新应用我的 BackColor 格式?

尝试这样的事情

If e.Row.RowType = DataControlRowType.DataRow Then
    Dim stStatus As String = e.Row.Cells(1).Text ' INDEX OF YOUR STATUS COLUMN
    For Each cell As TableCell In e.Row.Cells
        If stStatus = "Incomplete" Then
            cell.BackColor = Color.Red
        Else If stStatus = "Complete" Then
            cell.BackColor = Color.Green
        End If
    Next
End If

将此代码放入 GridView

RowDataBound 事件中