protected void ImageButton_enable_Click(object sender, ImageClickEventArgs e)
{
foreach(GridViewRow gvrow in GridView_enable.Rows)
{
CheckBox chk1=(CheckBox) gvrow.FindControl("CheckBox_select");
if (chk1.Checked == true)
{
Label lblEmail = (Label)gvrow.FindControl("Label1");
string email = lblEmail.Text;
}
}
}
我的代码有什么问题?我收到此错误“对象引用未设置为对象的实例”。
答案 0 :(得分:4)
protected void ImageButton_enable_Click(object sender, ImageClickEventArgs e)
{
foreach(GridViewRow gvrow in GridView_enable.Rows)
{
CheckBox chk1= gvrow.FindControl("CheckBox_select") as CheckBox;
if (chk1 != null && chk1.Checked == true)
{
Label lblEmail = gvrow.FindControl("Label1") as Label;
if (lblEmail != null)
Console.WriteLine(lblEmail.Text);
}
}
}
修改强> 詹姆斯的评论迫使我补充一下:
上述代码更改将解决您的直接问题(以及使用FindControl
和类似方法时,您应始终使用as
并检查null
),但您的真正问题存在于其他地方。如果这段代码期望这些控件已经被实例化,那么你需要看看它们是如何实现的,以及为什么它们不会在这段代码执行时出现。