public void CheckAll(object sender, System.EventArgs e) 

CheckBox cbAll = (CheckBox)sender; 
if(cbAll.Text=="全选") 

foreach(DataGridItem dgi in dg.Items) 

CheckBox cb = (CheckBox)dgi.FindControl("cbSelect"); 
cb.Checked = cbAll.Checked; 



错误提示:cb.Checked = cbAll.Checked;未将对象引用设置到对象的实例 
错在哪?
我一步步跟着邵少东老师做的
怎么会错呢?

解决方案 »

  1.   

    你要排除DataGridItem里面的Header和Footer这类Item
      

  2.   

    微软的那个邵志东?
    讲的很一般
    还什么MVP呢,讲的一点都不通俗
    通常一大篇光讲理论,而且每个视频都是重复的那么几大块
    什么数据库设计啊,再分个一,二,三下一个视频还是这么讲,再分个一,二,三
    他以为看视频的都是白痴吗?实践的时候都是运行一下程序
    大体说说怎么实现的
    个人感觉他讲的很一般
      

  3.   

    public void CheckAll(object sender, System.EventArgs e) 

      CheckBox cbAll = (CheckBox)sender; 
      if(cbAll.Text == "全选") 
      { 
        foreach(DataGridItem dgi in dg.Items) 
        { 
          CheckBox cb = dgi.FindControl("cbSelect") as CheckBox; 
          if (cb != null) cb.Checked = cbAll.Checked; 
        } 
      } 
      

  4.   

    public void CheckAll(object sender, System.EventArgs e) 

    CheckBox cbAll = (CheckBox)sender; 
    if(cbAll.Text=="全选") 

    foreach(DataGridItem dgi in dg.Items) 

    CheckBox cb = (CheckBox)dgi.FindControl("cbSelect"); 
    if(cb!=null)//dg.Items中没有checkbox中的话,cb就是null比如在headerItem.footerItem
       cb.Checked = cbAll.Checked; 


    }
      

  5.   

      public void CheckAll(object sender, System.EventArgs e) 

      CheckBox cbAll = (CheckBox)sender; 
      if(cbAll.Text == "全选") 
      { 
        foreach(DataGridItem dgi in dg.Items) 
        { 
            if(dgi.ItemType==ListItemType.Item||dgi.ItemType==ListItemType.AlternatingItem)
            {
                CheckBox cb = dgi.FindControl("cbSelect") as CheckBox; 
                if (cb != null) cb.Checked = cbAll.Checked; 
            }
        } 
      } 
      

  6.   

    另外checkAll的话一般是用 js实现
    用后台回传会刷新页面