2012-07-31 55 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