我与编程创建用户控制的问题。页面加载不打在动态用户控件创建(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