如何将控件附加到面板?

时间:2012-10-14 08:09:28

标签: c# asp.net user-controls append panel

我正在ASP.NET中开发一个动态网站。作为试用版,我尝试了下面显示的代码,为Panel1添加了一些控件。当用户第一次单击按钮时,控件将添加到Panel中,但是当用户第二次单击同一按钮时,先前的控件将替换为新控件。但是我希望每次用户单击按钮时都会一个接一个地添加控件。代码是这样的:

Control c=Page.LoadControl("DData.ascx");
Panel1.Controls.Add(c);

我也试过

Control c=Page.LoadControl("DData.ascx");
Panel1.Controls.AddAt(Panel1.Controls.Count,c);

但这取代了第一个输出。请告诉我如何附加这些控件?

2 个答案:

答案 0 :(得分:0)

正如您所料,这会附加一个控件:

Control c = Page.LoadControl("DData.ascx");
Panel1.Controls.Add(c);

您可以以这种方式追加任意数量的控件。

但是,您需要以某种持久/有状态方式(数据库,会话,ViewState等)跟踪要添加的控件。

每次加载页面时都需要重建控制树

查看我对类似问题的回答:

答案 1 :(得分:0)

它可能与asp.net页面的生命周期有关。每次页面加载时,它都会返回初始状态。按钮单击事件在页面加载后处理,并且页面上只有一个控件。请查看Button to dynamically add controls everytime it's clicked