2

使用 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 时,它只为每行中的第一个单元格着色,我认为这根本不依赖于日期,因为它似乎将它们全部着色为红色。

4

1 回答 1

4

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

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

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

完美运行,将其留给其他有类似问题的人。在这种情况下,索引似乎不是很准确。

于 2012-11-14T10:29:22.517 回答