Private Sub DataGrid2_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid2.ItemDataBound Dim lbl As Label = e.Item.FindControl("Label5")
Dim duestr As String = lbl.Text.ToString '如果是取不含控件的列,如e.Item.Cells(2).Text(),则没有问题 e.Item.Cells(7).Attributes.Add("onclick", "alert('" & duestr & "'); return false;")
End Sub
运行出错提示为:
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 252: ' ' End If
行 253: Dim lbl As Label = e.Item.FindControl("Label5")
行 254: Dim duestr As String = lbl.Text.ToString
行 255:
行 256: e.Item.Cells(7).Attributes.Add("onclick", "alert('" & duestr & "'); return false;")
Dim duestr As String = lbl.Text.ToString '如果是取不含控件的列,如e.Item.Cells(2).Text(),则没有问题 e.Item.Cells(7).Attributes.Add("onclick", "alert('" & duestr & "'); return false;")
End Sub
运行出错提示为:
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 252: ' ' End If
行 253: Dim lbl As Label = e.Item.FindControl("Label5")
行 254: Dim duestr As String = lbl.Text.ToString
行 255:
行 256: e.Item.Cells(7).Attributes.Add("onclick", "alert('" & duestr & "'); return false;")
假设你的Label在Cells(1),你可以这样写
Dim duestr As String =((Label)e.Item.Cells(1).Controls(0)).Text
Controls(0)代表第一个控件,但你要注意LiteralControl的存在,所以如果出错,你可以改变Controls的索引试试。
dim txt as Textbox = e.Item.FindControl("text")
要加上
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternativeItem)
{
//your operation.
}
Dim lbl As Label = e.Item.FindControl("Label5")也没有错,
就是加上这一句 Dim duestr As String = lbl.Text就出错
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternativeItem)
{
//your operation.
}
就可以了!
{
//
使用lb1
}
else
{
,没找到
}