根据历史记录的数量,循环创建Table依次显示历史记录//在table的单元格td_1_1中自动创建一个CheckBox:cb1_1_1
Anthem.CheckBox cb1_1_1 = new Anthem.CheckBox();
            cb1_1_1.ID = string.Format("cbChoose{0}", dt.Rows[i]["Number"].ToString());
            cb1_1_1.AutoUpdateAfterCallBack = true;
            cb1_1_1.Checked = false;
            td1_1.Controls.Add(cb1_1_1);[code][code=C#]
//在某个按钮点击事件中
Anthem.CheckBox cbChoose = (Anthem.CheckBox)this.FindControl(string.Format("ctl00_ContentPlaceHolder1_cbChoose{0}", dt.Rows[i]["Number"].ToString()));
//ctl00_ContentPlaceHolder1_cbChoose1是界面显示出来后查看源码里面看到的id
//但是这时候取到cbChoose为null,为什么?

解决方案 »

  1.   

    我也试过
    Anthem.CheckBox cbChoose = (Anthem.CheckBox)this.FindControl(string.Format("cbChoose{0}", dt.Rows[i]["Number"].ToString()));
      

  2.   

    如果checkbox外边还有服务器控件,this.FindControl,这样就不行了
    你可以看下父控件的controls
      

  3.   

    CheckBox是在Table的单元格里,Table在div层里,请问该怎么写?
    我试过this.FindControl("divName").FindControl("CheckBoxName"),但是this.FindControl("divName")已经为null了,怎么办,难道要把那么嵌套的div一层一层FindControl找下来?
      

  4.   

    ctl00_ContentPlaceHolder1_cbChoose 
    直接用cbChoose 就可以找到了
    ctl00_ContentPlaceHolder1_cbChoose是前台的ID,cbChoose 是服务器端的ID
    可能这样解释不太准确