单击“添加”按钮并维护ViewState时是否可以添加相同用户控件的实例?
此处的用户界面类似于Gmail文件附件流程,用户可以点击“附加其他文件”,然后会显示另一个文件上传框。
我的页面被UpdatePanel包围。我可以加载1个控件,但是按钮的click事件在Placeholder_Init方法之后触发。我尝试在ViewState中存储一个整数,该整数跟踪应该呈现的用户控件的数量,但在恢复ViewState之前也会触发Init方法。
谢谢!
答案 0 :(得分:3)
在ASP.NET中,动态添加多个控件很容易。假设您在ASPX文件中声明了一个名为Panel的面板,并且您有一个名为MyControl的自定义控件。
在您的Page_Load函数中(或几乎在任何地方),添加如下内容:
for (int i = 0; i < NumberOfAttachments; i++) {
Panel.Controls.Add(new MyControl());
}
这也适用于UpdatePanels,但是如果你没有在子回发上更新它,你需要调用.Update()函数让它在客户端更新。