CheckBoxList cblist=new CheckBoxList();
cblist.ID="cblist";
cblist.Attributes.Add("width","100%");
for(int m=0;m<5;m++)
{
cblist.Items.Add(new ListItem(an[m,1],an[m,2]));
}
cblist.DataBind();
cblist.Items[0].Selected=true;
cblist.RepeatColumns=k;
DG.Items[DG.Items.Count-1].Cells[DG.Columns.Count-2].Controls.Add(cblist);
我在datagrid最后一行上加载了一个checkboxlist控件
在提取时如下:
 CheckBoxList cb1=new CheckBoxList();
for(int i=0;i<DG.Items.Count;i++)
{
for(int j=0;j<DG.Columns.Count;j++)
{
cb1=(CheckBoxList) DG.Items[i].FindControl("cblist");
}
}cb1未将对象引用设置到对象的实例。 
为什么获取不到动态生成的“cblist”呢??

解决方案 »

  1.   

    中断看看DG.Items[i]的Controls属性有什么东西
      

  2.   

    我通过
    CheckBoxList cb1=new CheckBoxList();
    for(int i=2;i<DG.Items.Count;i++)
    {
    for(int m=0;m<DG.Columns.Count;m++)
    {
    for(int j=0;j<DG.Items[i].Cells[m].Controls.Count;j++)
    {
    cb1=(CheckBoxList) DG.Items[i].Cells[i].Controls[j];
    if(cb1!=null)
    {
    break;
    }
    }
    }
    }
    调试没有发现事物存在
      

  3.   

    我把DataGrid中每一个单元格都查找了一遍都获取不到
    我在html中可以获取到
      

  4.   

    cb1=(CheckBoxList) DG.Items[i].Cells[i].Controls[j];这句,如果不存在的话会报错的,有没有报错啊。除非DG.Items[i].Cells[m].Controls.Count = 0 了