在MSDN page lifecycle reference中,它声明pre-init用于“创建或重新创建动态控件。”
但是,elsewhere on MSDN,一个示例意味着应在Page_Load中加载动态用户控件
这是矛盾的吗?或者pre-init仅用于标准的aspx控件?
我错过了什么:)
修改 然而,无论哪种方式都有效,一种方法可能会带来一些好处,而不是另一种方法。
(WebUserControl1是一个带有简单标签属性的UserControl, SomeProperty )
protected override void OnPreInit(EventArgs e)
{
base.OnPreInit(e);
WebUserControl1 wc1 = LoadControl(@"~\WebUserControl1.ascx") as WebUserControl1;
wc1.SomeProperty = "Hello World";
Controls.Add(wc1);
}
protected void Page_Load(object sender, EventArgs e)
{
WebUserControl1 wc1 = LoadControl(@"~\WebUserControl1.ascx") as WebUserControl1;
wc1.SomeProperty = "Hello World";
Controls.Add(wc1);
}
答案 0 :(得分:1)
你到底想要做什么?您是否尝试将信息传递给用户控件?如果是这样,您可以将信息从父页面传递给page_load事件中的用户控件。
答案 1 :(得分:1)
自定义控件的答案取决于。如果你的用户控件在page_load之前不需要任何操作,那么你可以继续在页面加载期间添加你的控件,如果你的用户控件中的代码在较早的时间执行,那么你应该在MSDN文章建议的早期阶段。