C# 无法在按钮单击事件上创建多个控件

C# 无法在按钮单击事件上创建多个控件,c#,asp.net,.net,controls,C#,Asp.net,.net,Controls,我试图在按钮单击事件上动态创建一个asp:UploadFile控件。创建第一个控件后,它不会创建第二个或第三个控件。下面是我的代码 protected void AddFileInputControl_Click(object sender, EventArgs e) { FileUpload image = new FileUpload(); image.ID = "image"; fileinputs_div.Controls.Add(image); } 任何帮助都

我试图在按钮单击事件上动态创建一个
asp:UploadFile
控件。创建第一个控件后,它不会创建第二个或第三个控件。下面是我的代码

protected void AddFileInputControl_Click(object sender, EventArgs e)
{
    FileUpload image = new FileUpload();
    image.ID = "image";
    fileinputs_div.Controls.Add(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);
}

Asp.net不会为下一次调用保存动态创建的控件。这意味着您需要在每次回发时创建它们。大概是这样的:

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++;
}
private int\u计数器=0
受保护的void AddFileInputControl\u单击(对象发送方,事件参数e)
{
对于(int i=0;i<\u计数器;i++)
{
fileinputs\u div.Controls.Add(新文件上载()
{
ID=string.Format(“图像{0}”,i);
});    
}
_计数器++;
}