如何添加文本框动态地asp.net C#和添加使用后的文本框中的值 [英] How to add text boxes dynamically in asp.net C# and use the textbox values after adding
本文介绍了如何添加文本框动态地asp.net C#和添加使用后的文本框中的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我能够动态地添加文本框,我不能够使用这些动态添加文本框的值
这里是我的code
I am able to add textboxes dynamically and i am not able to use the value of the textboxes which are dynamically added Here is my code
int i = 0;
List<string> controlidlist = new List<string>();
protected override void LoadViewState(object savedState)
{
base.LoadViewState(savedState);
controlidlist = (List<string>)ViewState["controlidlist"];
foreach (string Id in controlidlist)
{
i++;
TextBox tb = new TextBox();
tb.ID = Id;
LiteralControl lineBreak = new LiteralControl();
PlaceHolder1.Controls.Add(tb);
PlaceHolder1.Controls.Add(lineBreak);
}
}
我在这里进行动态地添加文本框
Here am performing the dynamically adding the textboxes
protected void Button1_Click(object sender, EventArgs e)
{
i++;
TextBox tb = new TextBox();
tb.ID = "textboxes" + i;
tb.Text = "textbox" + i;
LiteralControl lineBreak = new LiteralControl("<br>");
PlaceHolder1.Controls.Add(tb);
PlaceHolder1.Controls.Add(lineBreak);
controlidlist.Add(tb.ID);
ViewState["controlidlist"] = controlidlist;
}
在这里,我想尝试让这些动态添加文本框的值
Here i want to try get the textbox values which are dynamically added
protected void datainput_Click(object sender, EventArgs e)
{
string m = string.Empty;
for (int f = 0; f < i; f++)
{
TextBox t = (TextBox)FindControl("textboxes"+f);
string k = t.Text;
m = m +","+k;
}
string h = m;
}
这正的错误是
对象引用未设置为一个对象的实例。
在串K = t.Text;
推荐答案
将它添加到一个容器:
<asp:Panel runat="server" ID="pnlTextboxes"></asp:Panel>
foreach (string Id in controlidlist)
{
i++;
TextBox tb = new TextBox();
tb.ID = Id;
LiteralControl lineBreak = new LiteralControl();
pnlTextboxes.Controls.Add(tb);
pnlTextboxes.Controls.Add(lineBreak);
}
和
TextBox t = (TextBox)pnlTextboxes.FindControl("textboxes"+f);
更新:
TextBox t = (TextBox)PlaceHolder1.FindControl("textboxes"+f);
这篇关于如何添加文本框动态地asp.net C#和添加使用后的文本框中的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文