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

时间:2014-02-08 00:10:36

标签: 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);
}

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

尝试为每个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);
}

答案 1 :(得分:0)

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++;
}