[英]Loading user control dynamically from server side
我有一個繼承一個類的用戶控件。 (並且我對該類的Oninit
函數進行了一些編碼)。 我正在使用以下方法從服務器端動態加載該用戶控件:
Mycontrol dc = (Mycontrol)Page.LoadControl("/Controls/Mycontrol.ascx");
MyPlaceHolder.Controls.Add(dc);
但是問題在於,用戶控件繼承的類的Oninit
函數尚未執行。 誰能告訴我為什么會這樣,對此有什么解決方案?
謝謝,
按照參考MSDN的頁面生命周期事件時, OnInit
子控件都是之前調用OnInit
頁面。
這意味着您必須在PreInit
事件中添加動態控件,以便在事件鏈開始之前將其放置在適當的位置。 實際上, PreInit
的文檔指出:
將此事件用於以下用途:
檢查IsPostBack屬性,以確定這是否是第一次處理頁面。 此時還設置了IsCallback和IsCrossPagePostBack屬性。
創建或重新創建動態控件。
動態設置母版頁。
動態設置主題屬性。
讀取或設置配置文件屬性值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.