Asp.net
LoadControl 與構造 ASP.Net 控制項
我有一個問題,為什麼我們只能使用 LoadControl 添加動態控制。例如:
public partial class wucReportParam : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { wucDate() ctrl = new wucDate(); pnl.Controls.Add(ctrl); } }在 wucDate 的 page_load 方法中,wucDate 的子控制項為空,但是當我使用以下方法時:
public partial class wucReportParam : System.Web.UI.UserControl { public Report Report; protected void Page_Load(object sender, EventArgs e) { ctrl = (wucDate)LoadControl(@"Reports\wucDate.ascx"); pnl.Controls.Add(ctrl); } }wucDate的page_load方法中,wucDate的子控制項不為空。有誰可以向我解釋為什麼當我使用建構子時,asp .net 不創建 wucDate 的任何子控制項???謝謝
動態載入使用者控制項時,確保標準 ASP.NET 頁面事件管道已啟動並正常進行非常重要。當您使用 new 運算符創建使用者控制項的實例時,該使用者控制項未正確添加到 ASP.NET 的事件系統中。如果事件(Init、Load、PreRender 等)沒有觸發,那麼您的控制項將永遠無法正常執行。這就是為什麼必須使用 LoadControl 的原因,因為這將確保您的使用者控制項實例被正確創建並附加到 ASP.NET。