请问各位我在DataGrid中加入了一模板列在它的EditItemTemplate加入了CheckBoxList1控件,其余是绑定列,如何使CheckBoxList1控件绑定数据源.(我在DataGrid1_ItemCreated事件中用((CheckBoxList)e.Item.FindControl("CheckBoxList1")).DataSource=dt;其中dt已定义.系统报错"未将对象引用设置到对象实例")

解决方案 »

  1.   

    不要忘了加上判断
    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==AlternatingItem)
      {
    ((CheckBoxList)e.Item.FindControl("CheckBoxList1")).DataSource=dt;
    }还有代码贴出来.
      

  2.   

    給一小段代码供参考:
    DataGrid中放置一个CheckBox模版列,绑定bool字段
    说明:要绑定的字段类型是bit(即bool类型),当此字段的值为true时,CheckBox框被勾上,如果是false时,勾被取消。
    如:字段名称为Flag 类型是bit 取值0,1;
    ①在DataGrid中放置一个CheckBox模版列,选中CheckBox控件,选择属性DataBindings,选择“可绑定属性”:Checked
    ②在“自定义绑定表达式”中,
    填上“(bool)DataBinder.Eval(Container, "DataItem.Flag")” 
    完成.
      

  3.   

    应该是这一句:
    ((CheckBoxList)e.Item.FindControl("CheckBoxList1")).DataSource
    中对象((CheckBoxList)e.Item.FindControl("CheckBoxList1"))不存在,
    可以试试一楼的做法,判断一下.当然最好把代码贴出来看看了
      

  4.   

    加入if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==AlternatingItem)
    {}判断后问题依旧"未将对象引用设置到对象的实例"代码如下;
    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    {
    ((CheckBoxList)e.Item.FindControl("CheckBoxList1")).DataSource=dt;
    ((CheckBoxList)e.Item.FindControl("CheckBoxList1")).DataTextField="name";
    ((CheckBoxList)e.Item.FindControl("CheckBoxList1")).DataBind();
    }