如果在Page.Load中动态添加,则UserControl不会出现在页面上

时间:2010-07-09 18:13:46

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

我有一个自定义的ASP.NET用户控件,它被添加到Page.Load方法中的网页面板上。该控件包含一些标签和GridView。我正在使用以下代码将其添加到页面中:

ReportingControl rc = new ReportingControl(this.Username, this.SoaContext, transactionId, p.PaymentTypeRequestKey);
this.pnlPB.Controls.Add(rc);

由于某种原因,添加的控件实际上并未显示在页面上。我还注意到控件中的控件都是null但我不知道这是否是问题的一部分,或者它们是否在以后创建。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

是继承自UserControlCompositeControl等的WebControl还是自定义服务器控件?

通常使用用户控件,您可以通过ascx位置加载它们,例如:

//load the control
Control rc= LoadControl("~/UserControls/MyControl.ascx");

//set up values as needed
rc.Username = this.Username; 

//add the control where needed
this.pnlPB.Controls.Add(rc);