protected void btnDel_Click(object sender, ImageClickEventArgs e)
    {
          PDTeam team = new PDTeam();
            String teamId;
            foreach(DataGridItem item in this.dgTeamInfo.Items)   dgTeamInfo为DataGrid
            {
                CheckBox chkSelect = (CheckBox)item.Cells[0].Controls[1];
                if (chkSelect.Checked)     
                {
                    teamId = item.Cells[1].Text.Trim()                         team.DeleteByTeamId(teamId);
                }
}
运行时,出现 删除失败:未将对象引用设置到对象的实例。跟踪时,发现teamId 为null,为什么没有获得到啊???请指教~~

解决方案 »

  1.   

     item.Cells[1].Text//这里的问题,感觉是Text为空或Item.Cells[1]为空或item为空导至的
      

  2.   

      CheckBox chkSelect = (CheckBox)item.Cells[0].Controls[1]; 可能CheckBox对象不存在
    一般我们是这样做的
     CheckBox chkSelect = item.FindControl("cbName") as CheckBox ; 
      

  3.   

    if (chkSelect.Checked)    
    此句断点调试通过,说明CheckBox 对象存在,那就是dgTeamInfo列数小于2
      

  4.   

    先檢查一下你的Page_Load中是不是沒有加if (!Page.IsPostBack){ }每次頁面打開就重新再綁定,如果是的話那你改正下。
      

  5.   

    判断items是不是为空 
    if (dgTeamInfo.Items.Count != 0)
    {
          CheckBox chkSelect = (CheckBox)item.Cells[0].Controls[1]; 
          if (chkSelect.Checked)    
          { 
                teamId = item.Cells[1].Text.Trim()                        
                team.DeleteByTeamId(teamId); 
          } 
    }
      

  6.   

    已跟踪,items不是为空 ,现在报错是在选定的数据源上未找到名为“TeamId”的字段或属性。