我與編程創建用戶控制的問題。頁面加載不打在動態用戶控件創建(Web窗體)
從我的測試中,增加了用戶控件到另一個控件集合揭開序幕用戶 控件的生命週期。具體而言,它調用控件Page_Load
方法。有誰知道是否有揭開序幕 生命週期的用戶控件到Controls.Add被()方法調用之前的方法是 製成?
Default.aspx的代碼
<asp:PlaceHolder1 ID="PlaceHolder1" runat="server" />
protected void Page_Init(object sender, EventArgs e)
{
var module = LoadControl("~/Module.ascx") as Module;
// If this line of code does not execute, the Page_Load method never executes in the user control.
//PlaceHolder1.Controls.Add(module);
}
Module.ascx代碼
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<%# Container.DataItem %>
</ItemTemplate>
</asp:Repeater>
protected void Page_Load(object sender, EventArgs e)
{
Repeater1.DataSource = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Repeater1.DataBind();
}
我得到你正在試圖解決一個問題,你如何組織你的代碼的感覺。除了自己打電話進入控制,我沒有看到很多選擇。你能解釋一下你的實際問題嗎? – NotMe 2012-01-31 02:34:41
我提供的示例代碼是我真正問題的簡化版本。我正在嘗試在用戶控件中創建一個Telerik RadDock,而不是在aspx頁面的代碼後面執行它。 RadDockZone只能包含RadDock類型的控件,所以我創建了一個用戶控件,現在我試圖加載用戶控件,然後將用戶控件中的RadDock添加到RadDockZone.Docks集合中。我不明白爲什麼LoadControl()不會調用控件的生命週期事件和Controls.Add()。 – Halcyon 2012-01-31 03:33:44