列排序的ASP.NET GridView BackColor更新

本文关键字:GridView BackColor 更新 NET ASP 排序 | 更新日期: 2023-09-27 18:20:48

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

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

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

这告诉我可能误解了Sorted事件的工作方式。有人能告诉我如何正确设置GridView,这样我就可以按某列排序,并且仍然可以重新应用我的BackColor格式吗?

列排序的ASP.NET 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

将此代码放入GridViewRowDataBound事件