以下代码为什么去掉if(object.Equals(Edit_Image,null)==false)条语句会出现在错误。
错误提示《示引用到对像》请各位高手告诉我if(object.Equals(Edit_Image,null)==false)这是什么意思。为什么去掉这个就不行,请高手们讲清楚点,谢谢private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{


  //为表中每个项目加上java脚 本属性。
System.Web.UI.WebControls.ImageButton Edit_Image;
Edit_Image=(System.Web.UI.WebControls.ImageButton)e.Item.FindControl("button_Edit");
if(object.Equals(Edit_Image,null)==false)
{
TextBox1.Text="asdfkajgakjglkjgl";
Edit_Image.Attributes.Add("onClick","javascript:return confirm('你能确定要删除此记录吗?')"); 
}
}

解决方案 »

  1.   

    where is button_Edit? is it in ItemTemplate? because not all Items have that control, tryprivate void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {if (e.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {System.Web.UI.WebControls.ImageButton Edit_Image;
    Edit_Image=(System.Web.UI.WebControls.ImageButton)e.Item.FindControl("button_Edit");
    //if(Edit_Image != null)  //but it is good to check first
    {
    TextBox1.Text="asdfkajgakjglkjgl";
    Edit_Image.Attributes.Add("onClick","javascript:return confirm('你能确定要删除此记录吗?')"); 
    }}
    }
      

  2.   

    能不能用文字给我讲讲为什么要用
    if (e.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    不用这个不行吗?
      

  3.   

    if(object.Equals(Edit_Image,null)==false)//item创建时看看Edit_Image是否为空,因为如果是datagrid的标题,和页尾是没有这个控件的,此时对他操作,会出现空引用的错误if (e.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    道理一样,是除去标题,和页尾。