我有一个继承类的用户控件。 (我在这个类的Oninit
函数上做了一些编码)。我使用以下方法从服务器端动态加载该用户控件:
Mycontrol dc = (Mycontrol)Page.LoadControl("/Controls/Mycontrol.ascx");
MyPlaceHolder.Controls.Add(dc);
但问题是,由此导致用户控件继承的类的Oninit
函数尚未执行。任何人都可以告诉我为什么会这样,以及解决方案是什么。
谢谢,
答案 0 :(得分:0)
根据页面生命周期事件的MSDN reference,在OnInit
页面之前调用OnInit
个子控件。
这意味着您必须在PreInit
事件中添加动态控件,才能在事件链启动之前将它们放置到位。事实上,PreInit
的文档指出:
将此事件用于以下事项:
检查IsPostBack属性以确定这是否是第一个 正在处理页面的时间。 IsCallback和 此时也设置了IsCrossPagePostBack属性。
创建或重新创建动态控件。
动态设置母版页。
动态设置Theme属性。
读取或设置个人资料属性 值。