ASP.NET - 在GridViewRowEventArgs Row.Cells.Item中使用列名而不是索引

tgx*_*iii 5 .net vb.net asp.net gridview

我想对GridView中的单元格执行一些简单的自动格式化.到目前为止,我有以下代码:

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
Run Code Online (Sandbox Code Playgroud)

我想通过列名而不是索引来引用单元格.例如,DataRow:

row.Item("ON_TIME")
Run Code Online (Sandbox Code Playgroud)

如何使用GridView实现这一目标?

Muh*_*tar 6

你可以这样做..但这是c#代码

DataRow dr = ((DataRowView)e.Row.DataItem).Row;
dr["ColumnName"]
Run Code Online (Sandbox Code Playgroud)

编辑:将此条件置于顶部

if (e.Row.RowType == DataControlRowType.DataRow)
Run Code Online (Sandbox Code Playgroud)