我正在使用此代码
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
<asp:Button ID="addnewtext" runat="server" Text="Add" onclick="addnewtext_Click" width="76px" />
和aspx.cs页面代码:
TextBox tb;
static int i = 0;
protected void addnewtext_Click(object sender, EventArgs e)
{
tb = new TextBox();
tb.ID = i.ToString();
PlaceHolder1.Controls.Add(tb);
i++;
}
每按一下按钮,我想添加另一个文本框.
解决方法:
原因:
再次单击按钮时,它会回发到服务器端,并删除以前添加的动态文本框
解:
要再次添加它,您需要这样做
TextBox tb;
static int i = 0;
protected void addnewtext_Click(object sender, EventArgs e)
{
i++;
for(j=0;j<=i;j++)
{
tb = new TextBox();
tb.ID = j.ToString();
PlaceHolder1.Controls.Add(tb);
}
}
这意味着您需要再次创建添加的文本框…因为您正在动态地向页面添加控件…
这样的文章可能会对你有所帮助:Retaining State for Dynamically Created Controls in ASP.NET applications