当前位置:编程学习 > C#/ASP.NET >>

动态添加文本框后获取值的问题,急!!!!!

我一个按钮事件下,根据输入的个数 生成文本框
 if (Page.IsValid)
            {
                int u = int.Parse(PosPer.Text);

                
                int i;
                for (i = 1; i<u; i++)
                {
                    TextBox song = new TextBox();


                    song.ID = "song" + i.ToString();

                    Panel1.Controls.Add(song);

                }

            }   

然后在获取他们的值的时候

  int u = int.Parse(PosPer.Text);
            int i;
            StringBuilder str = new StringBuilder();
            for (i = 1; i < u; i++)
            {

                str.Append(((TextBox)Page.FindControl("song" + i)).Text + "@");


            }
            string strText = str.ToString().Substring(0, str.ToString().Length - 1);
            string[] proinfo = strText.Split('@');



str.Append(((TextBox)Page.FindControl("song" + i)).Text + "@");
 这句报错  说是 空引用,我想应该是没找到控件名字。

   请问怎么解决? 哪里出错了? --------------------编程问答-------------------- 刚才那贴自我给你全部可运行代码了……难道有错误? --------------------编程问答-------------------- 没问题, 已经能动态生成


 就是获取值 的时候错误了  麻烦大侠看下 --------------------编程问答-------------------- 估计是交互过程先PageLoad,然后Btn事件,这个过程中,在pageload中,控件没了 --------------------编程问答-------------------- 动态生成的时候用
if (!Page.IsPostBack)  --------------------编程问答-------------------- 把动态创建控件的代码写一方法c() 在page_load中调用,且不能放在(!Page.IsPostBack)中,只有这样,页面刷新后其值才会保留 --------------------编程问答-------------------- 或者使用viewstate保存页面控件的相关信息,刷新后根据viewstate再次创建,这样才能取到控件与其值 --------------------编程问答-------------------- UP --------------------编程问答-------------------- 结贴率好低 --------------------编程问答-------------------- str.Append(((TextBox)this.Panel1.FindControl("song" + i)).Text + "@"); 
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,