我有一个我正在研究的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
答案 0 :(得分:2)
我已经检查了GridViewRow变量“row”的单元格数量 5点出现,所以我不确定我做错了什么。
row.Cells(5)
返回第6个Cell,而不是第5个,因为在.NET中索引为0。但Count
属性返回实际的单元格数。
GridView.Rows
也是如此。
GridView1.Rows(9)
返回第10个GridViewRow
。