使用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时,它只会为每一行中的第一个单元格着色,我认为这根本不依赖于日期,因为它似乎将它们全部涂成红色。
答案 0 :(得分:4)
管理找到修复,而不是使用列的索引,我使用列名,如下所示:
If e.Row.DataItem("DueDate") < Date.Now.ToString Then
e.Row.BackColor = Drawing.Color.Red
End If
注意:我在RowDataBound中声明了这一点,而不是在RowCreated中声明。
完美无缺,将此留给其他有类似问题的人。在这种情况下,索引似乎不太准确。