动态生成 TextBox 后点击按钮2,3,4进行其他的操作后再点击按钮1获取生成的 TextBox 。
TextBox text = (TextBox)this.addpanel.FindControl(textstring);这样没什么问题但是 点击按钮 5 进行其他操作后,再点击按钮1获取生成的 TextBox 。报错:未将对象引用设置到对象的实例。,也就是text 为null
for (int i = 0; i < num; i++)
{
                    string textstring= "text" + i.ToString();
                    TextBox text = (TextBox)this.addpanel.FindControl(textstring);
}同样是i=0其他按钮就正常按钮5就报错

解决方案 »

  1.   

    楼主你最好是把你的动态生成textbox和按钮5的代码贴出来看看。
      

  2.   

     for (int i = 0; i < num; i++)
                {
                    TextBox t = new TextBox();
                    t.ID = "text" + i.ToString();
                    Label l = new Label();
                    l.ID = "lab" + i;
                    int k = i + 1;
                    l.Text = "<" + k.ToString() + ">";
                    this.addpanel.Controls.Add(l);
                    this.addpanel.Controls.Add(t);
                }
    按钮5 是添加数据的代码跟 自动生成textbox 没关系
      

  3.   

    在 Page_Load(object sender, EventArgs e) 里面生成的
      

  4.   

    这些应该是放到一个对应的事件中去的,你还可以用
     TextBox text = (TextBox)this.addpanel.FindControl(textstring); ?应该是时间的参数.item或者其他的.FindControl(“Id”)
    当然,这个控件的id是服务器端的