动态添加文本框后获取值的问题,急!!!!!
我一个按钮事件下,根据输入的个数 生成文本框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