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

时间:2009-01-14 19:58:51

标签: c# asp.net .net-3.5 user-controls

单击“添加”按钮并维护ViewState时是否可以添加相同用户控件的实例?

此处的用户界面类似于Gmail文件附件流程,用户可以点击“附加其他文件”,然后会显示另一个文件上传框。

我的页面被UpdatePanel包围。我可以加载1个控件,但是按钮的click事件在Placeholder_Init方法之后触发。我尝试在ViewState中存储一个整数,该整数跟踪应该呈现的用户控件的数量,但在恢复ViewState之前也会触发Init方法。

谢谢!

1 个答案:

答案 0 :(得分:3)

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

在您的Page_Load函数中(或几乎在任何地方),添加如下内容:

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

这也适用于UpdatePanels,但是如果你没有在子回发上更新它,你需要调用.Update()函数让它在客户端更新。