检查是否在Visual Basic中GridViewRow单元格为null

时间:2012-09-06 20:11:05

标签: vb.net

我有一个我正在研究的VB项目,我必须将GridView分解为每一行并检查一个特定的单元格。如何检查是否存在空值?以下代码导致错误消息

“指定的参数超出了有效值的范围。 参数名称:索引“

我已经检查了GridViewRow变量“row”的单元格数,它出现在5,所以我不确定我做错了什么。

Protected Sub grdProduct_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grdProduct.RowDataBound

    ' Grey out expired products
    Dim row As GridViewRow
    row = e.Row

    Dim incomingStatus As String
    If row.Cells(5).Text.ToString() <> vbNull Then
        incomingStatus = row.Cells(5).Text.ToString()
    Else
        incomingStatus = ""
    End If

我修改了代码以首先检查单元格计数,但它仍然以完全相同的错误返回。

    If row.Cells.Count > 5 And row.Cells(5).Text.ToString() <> vbNull Then
        incomingStatus = row.Cells(5).Text.ToString()
    Else
        incomingStatus = ""
    End If

最终编辑

修改代码就像修复了问题一样。谢谢你们:

    If row.Cells.Count > 5 Then
        If row.Cells(5).Text.ToString() <> vbNull Then
            incomingStatus = row.Cells(5).Text.ToString()
        Else
            incomingStatus = ""
        End If
    End If

1 个答案:

答案 0 :(得分:2)

  

我已经检查了GridViewRow变量“row”的单元格数量   5点出现,所以我不确定我做错了什么。

row.Cells(5)返回第6个Cell,而不是第5个,因为在.NET中索引为0。但Count属性返回实际的单元格数。

GridView.Rows也是如此。

GridView1.Rows(9) 

返回第10个GridViewRow