【问题标题】:Unable to create multiple Controls on Button Click Event无法在按钮单击事件上创建多个控件
【发布时间】:2014-03-05 14:11:28
【问题描述】:
我正在尝试在按钮单击事件上动态创建asp:UploadFile 控件。创建第一个控件后,它不会创建第二个或第三个控件。下面是我的代码。
protected void AddFileInputControl_Click(object sender, EventArgs e)
{
FileUpload image = new FileUpload();
image.ID = "image";
fileinputs_div.Controls.Add(image);
}
任何帮助将不胜感激。
【问题讨论】:
标签:
c#
asp.net
.net
controls
【解决方案1】:
尝试为每个 image 提供唯一 ID,例如使用全局计数器:
private int counter;
protected void AddFileInputControl_Click(object sender, EventArgs e)
{
FileUpload image = new FileUpload();
image.ID = "image" + counter++;
fileinputs_div.Controls.Add(image);
}
【解决方案2】:
Asp.net 不会为下一次调用保存动态创建的控件。这意味着您需要在每个 PostBack 中创建它们。像这样的:
private int _counter = 0
protected void AddFileInputControl_Click(object sender, EventArgs e)
{
for (int i = 0; i < _counter; i++)
{
fileinputs_div.Controls.Add(new FileUpload()
{
ID = string.Format("image #{0}", i);
});
}
_counter++;
}