如何将控件追加到面板



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

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

我也试过

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

但这会替换第一个输出。请告诉我如何附加这些控件?

如您所料,这将追加单个控件:

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

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

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

每次加载页面时都需要重新生成控件树。

请参阅我对类似问题的回答:

  • https://stackoverflow.com/a/10050755/453277
  • https://stackoverflow.com/a/9545079/453277

它可能与 asp.net 页面的生命周期有关。每次页面加载时,它都会返回到初始状态。按钮单击事件在页面加载后处理,页面上只有一个控件。请查看按钮以在每次单击时动态添加控件

最新更新