代码之家  ›  专栏  ›  技术社区  ›  John Rasch

单击按钮时动态添加同一用户控件类型的多个实例

  •  1
  • John Rasch  · 技术社区  · 16 年前

    当单击“添加”按钮并维护视图状态时,是否可以添加同一用户控件的实例?

    这里的用户界面类似于gmail文件附件过程,用户可以点击“附加另一个文件”,然后出现另一个文件上传框。

    我的页面被更新面板包围。我可以让1个控件加载,但按钮的Click事件在placeholder_init方法之后激发。我尝试在viewstate中存储一个整数,它跟踪应该呈现的用户控件的数量,但是init方法也会在viewstate恢复之前被激发。

    谢谢!

    1 回复  |  直到 8 年前
        1
  •  3
  •   Welbog    16 年前

    在ASP.NET中动态添加多个控件很容易。假设在ASPX文件中声明了一个名为panel的面板,并且有一个名为mycontrol的自定义控件。

    在页面加载函数中(或者实际上几乎任何地方),添加如下内容:

    for (int i = 0; i < NumberOfAttachments; i++) {
        Panel.Controls.Add(new MyControl());
    }
    

    这同样适用于updatepanels,但如果您没有在子回发时更新,则需要调用.update()函数使其在客户端进行更新。