2012-07-31 53 views
-1

我有一个函数来加载一个用户控件,它看起来像这样:负载动态控制Asp.net(ASP页生命周期)

private void AddPopupControlToPage() 
    { 
     WidgetConfiguration popupControl = new WidgetConfiguration(); 
     popupControl = (WidgetConfiguration)LoadControl("~/Docking/Widgets/WidgetConfiguration.ascx"); 
     popupControl.ID = "PopupControlInput1"; 
     g_PopupControlId = popupControl.ClientID; 
     popupControl.Attributes.Add("width", "150px"); 
     Form.Controls.Add(popupControl); 
    } 

我有下拉,让我改变基于页面布局在什么模板被选中。我应该可以从任何模板(页面)按下弹出控件。根据我在这里读到的内容http://msdn.microsoft.com/en-us/library/ms178472.aspx我应该能够在Page_PreInit事件中加载我的控件,但是该表单不会在该点加载,并且我收到一个空引用错误。关于如何/在哪里我应该加载我的弹出控件,并保持它可用于任何选定页面的任何想法?

+0

是假设控制的主网页内容之前填充..?也看看占位符 – MethodMan 2012-07-31 22:45:24

+0

你也尝试过'Page_Load'事件吗? – Raxr 2012-07-31 22:45:26

+0

弹出控件与所有其他控件真的是分开的,所以它应该在主页面内容之前加载。 – CodeMan5000 2012-07-31 22:48:30

回答

2

你应该负载的控制始终重写CreateChildControls方法

soomething像

protected override void CreateChildControls() 
    { 
     base.CreateChildControls(); 
     //now load your control here 
    } 
+0

你有一个如何做Leonardo的样本吗? – CodeMan5000 2012-07-31 22:51:06

+0

@LarryBargers更新 – Leonardo 2012-07-31 22:52:23

+0

莱昂纳多,这工作很好! – CodeMan5000 2012-07-31 22:56:50