【问题标题】: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++;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-23
        • 2011-09-05
        • 1970-01-01
        • 2018-06-17
        • 2011-11-08
        相关资源
        最近更新 更多