我有一个继承类的用户控件。(我Oninit
对这个类的功能做了一些编码)。我正在使用以下方法从服务器端动态加载该用户控件:
Mycontrol dc = (Mycontrol)Page.LoadControl("/Controls/Mycontrol.ascx");
MyPlaceHolder.Controls.Add(dc);
但问题是,Oninit
用户控件继承的类的功能并没有被执行。谁能告诉我为什么会发生这种情况以及解决方案是什么。
谢谢,
我有一个继承类的用户控件。(我Oninit
对这个类的功能做了一些编码)。我正在使用以下方法从服务器端动态加载该用户控件:
Mycontrol dc = (Mycontrol)Page.LoadControl("/Controls/Mycontrol.ascx");
MyPlaceHolder.Controls.Add(dc);
但问题是,Oninit
用户控件继承的类的功能并没有被执行。谁能告诉我为什么会发生这种情况以及解决方案是什么。
谢谢,
根据页面生命周期事件的MSDN 参考OnInit
,子控件的 被调用在OnInit
页面之前。
这意味着您必须在事件中添加动态控件PreInit
才能在事件链开始之前将它们放置到位。事实上,文档PreInit
说明:
将此事件用于以下情况:
检查 IsPostBack 属性以确定这是否是第一次处理页面。此时还设置了 IsCallback 和 IsCrossPagePostBack 属性。
创建或重新创建动态控件。
动态设置母版页。
动态设置 Theme 属性。
读取或设置配置文件属性值。