2011-04-19 82 views
5

我想對GridView中的單元格執行一些簡單的自動格式化。到目前爲止,我有以下代碼:ASP.NET - 在GridViewRowEventArgs中使用列名而不是索引Row.Cells.Item

Private Sub gridviewRefreshPanel_RowDataBound(_ 
    ByVal sender As Object, _ 
    ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _ 
     Handles gridviewRefreshPanel.RowDataBound 

    Dim readyStatus As String = DataBinder.Eval(e.Row.DataItem, "READY") 

    Select Case readyStatus 
     Case "NO" 
      e.Row.Cells.Item(5).ForeColor = Drawing.Color.Red 
      e.Row.Cells.Item(5).Font.Bold = True 
     Case "N/A" 
      e.Row.Cells.Item(5).ForeColor = Drawing.Color.Goldenrod 
      e.Row.Cells.Item(5).Font.Bold = True 
     Case "YES" 
      e.Row.Cells.Item(5).ForeColor = Drawing.Color.DarkGreen 
      e.Row.Cells.Item(5).Font.Bold = True 
    End Select 

End Sub 

我想通過列名而不是索引來引用單元格。例如,DataRow:

row.Item("ON_TIME") 

如何通過GridView實現此目的?

回答

6

你可以做喜歡..但是這是C#代碼

DataRow dr = ((DataRowView)e.Row.DataItem).Row; 
dr["ColumnName"] 

編輯:將這個情況在頂部

if (e.Row.RowType == DataControlRowType.DataRow) 
+0

我得到一個「引用的對象具有的價值'沒有'。」當我嘗試。 – tgxiii 2011-04-19 17:16:47

+0

我有編輯問題。 – 2011-04-19 17:22:37

+0

爲什麼我總是忘記標題欄?在你的幫助下,它現在可以工作。我使用「dr.Table.Columns(」ON_TIME「)。Ordinal」來獲取索引號。 – tgxiii 2011-04-19 17:31:00

相關問題