【问题标题】:ASP.NET GridView BackColor update on column sort列排序的 ASP.NET GridView BackColor 更新
【发布时间】:2015-11-05 18:43:12
【问题描述】:

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

当第一次加载带有GridView 的页面时。我逐步浏览表格上的行并根据其“状态”列更改每一行的BackColor(即,如果它是“不完整”,则将其变为红色或绿色,如果它是“完成”)。当您按另一列对表格进行排序时,BackColor 就会消失。

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

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

【问题讨论】:

  • 您可能想要挂钩到 RowDataBound 事件。自从我完成 WebForms 以来已经有一段时间了,但是如果数据源在排序时被重新绑定到网格,那么每次绑定一行时都尝试调用该函数。 msdn.microsoft.com/en-us/library/…
  • 效果很好。谢谢你的提示。我认为 Sorted 是正确的事件,但我想我错了。

标签: c# asp.net gridview conditional-formatting backcolor


【解决方案1】:

试试这样的

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 事件中

【讨论】:

  • 工作就像一个魅力。这正是我所需要的。谢谢。
猜你喜欢
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2012-10-17
  • 2016-07-31
  • 1970-01-01
  • 1970-01-01
  • 2017-03-28
  • 1970-01-01
相关资源
最近更新 更多