Gridview - 基于列数据的颜色单元格行

时间:2012-11-14 10:22:08

标签: asp.net vb.net gridview boundfield

使用VWD 2010 Express,ASP.NET,VB.NET。

我有一个绑定到数据库表的gridview,它包含10列,其中一列是隐藏的。

我想在当天之前设置任何具有截止日期(最后一列,gridview中的索引8)的行的背景颜色。

到目前为止,我有这个:(在RowCreated事件下定义)

Dim i As Integer = 8
If e.Row.RowType = DataControlRowType.DataRow Then
    If e.Row.Cells(i).Text <= Date.Now.ToString Then
        e.Row.Cells(i).ForeColor = System.Drawing.Color.Red
    End If
End If

然而,问题是,我收到错误:

  

“指定的参数超出了有效值范围,参数:   索引“

gridview中的所有对象都是boundfields。 唯一没有返回此错误的索引是索引0,任何建议?

当使用索引0时,它只会为每一行中的第一个单元格着色,我认为这根本不依赖于日期,因为它似乎将它们全部涂成红色。

1 个答案:

答案 0 :(得分:4)

管理找到修复,而不是使用列的索引,我使用列名,如下所示:

    If e.Row.DataItem("DueDate") < Date.Now.ToString Then
        e.Row.BackColor = Drawing.Color.Red
    End If

注意:我在RowDataBound中声明了这一点,而不是在RowCreated中声明。

完美无缺,将此留给其他有类似问题的人。在这种情况下,索引似乎不太准确。