现在用
DataTable dt = GetTable("....");//到到表的数据
for (int i = 0; i != dt.rows.count; ++i)
{
   RadioButton rb = new radiobutton();
   rb.id = "rb_" + i;
   panel1.controls .add(rb);
}虽然控件是成功添加了,但是执行下的代码找不到控件
panel1.controls.count
只返回 1,而不是实际页面显示数目。为什么? 如何解决,谢谢解答!

解决方案 »

  1.   

    你的描述逻辑中根本看不出“panel1.controls.count”何时执行。你把这句放在“for{}”结束后的那一行也是返回0吗?
      

  2.   

    LS的话有道理
    LZ检查一下语句的顺序吧
      

  3.   


    -----------------
    你的描述逻辑中根本看不出“panel1.controls.count”何时执行。你把这句放在“for{}”结束后的那一行也是返回0吗?
    -------------------
    1. 控件是成功添加, 没有错, 因为在页面上已表现出来.看看下面的简单代码.
    //-----------beginning of code---------------
    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                for (int i = 0; i != 5; ++i)
                {
                    RadioButton rb = new RadioButton();
                    rb.Text = i.ToString();
                    rb.ID = "rb_" + i;
                    Panel1.Controls.Add(rb);
                }
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            Response.Write(Panel1.Controls.Count); // 输出 1
        }
    }
    //----------------end of code
      

  4.   

    这段代码应该不能执行吧:
    rb.id = "rb_" + i.ToString();
      

  5.   

    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
                for (int i = 0; i != 5; ++i)
                {
                    RadioButton rb = new RadioButton();
                    rb.Text = i.ToString();
                    rb.ID = "rb_" + i;
                    Panel1.Controls.Add(rb);
                }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            Response.Write(Panel1.Controls.Count); // 输出 1
        }
    }