2012-11-14 69 views
1

使用VWD 2010 Express,ASP.NET,VB.NET。Gridview - 基於列數據的顏色單元格行

我有一個綁定到數據庫表的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 

然而,問題,我收到一個錯誤:

"Specified argument was out of the range of valid values, parameter: index"

所有在GridView的對象是綁定列。 不返回這個錯誤的唯一索引是索引0,有什麼建議嗎?

當使用索引0時,它僅着色每一行中的第一個單元格,我不認爲它完全依賴於日期,因爲它似乎將它們全部着色爲紅色。

+0

什麼是e.Row.Cells.Count? –

+0

對不起,你想要它返回的價值,它返回9。 – Charlie

回答

3

設法找到一個解決方法,而不是使用列的索引,我使用的列名,例如:

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

注:我的RowDataBound宣佈這個,不是在RowCreated。

完美地工作,在這裏留下來給其他任何有類似問題的人。在這種情況下,索引似乎不太準確。

相關問題