我有内容页面覆盖母版页的OnInit事件。覆盖工作正常,直到我在页面上放置自定义用户控件:在这种情况下,OnInit事件不会触发内容页面(用户控件中不使用覆盖)
可能的原因/解决方案是什么? (我使用OnInit事件来创建动态控件)
修改
现在我在内容页面中尝试了这个:
(OnPreInit部分运行,但Masters_Init不会被调用...)
protected override void OnPreInit(EventArgs e)
{
base.Master.Init += new EventHandler(Masters_Init);
}
void Masters_Init(object sender, EventArgs e)
{
//code
}
答案 0 :(得分:19)
你在调用base.OnInit吗?
public override void OnInit(EventArgs e)
{
// code before base oninit
base.OnInit(e);
// code after base oninit
}
<强>更新强>
public class Page1 : Page
{
public Page1 : base() {
PreInit += Page_PreInit;
}
void Page_PreInit(object sender, EventArgs e)
{
Master.Init += Master_Init;
}
void Master_Init(object sender, EventArgs e)
{
//code
}
}
同样如评论中所述,我建议不要覆盖事件,如果你没有,但如果你必须确保打电话给基地。所以在上面的编辑中它应该是
protected override void OnPreInit(EventArgs e)
{
base.OnPreInit(e);
base.Master.Init += new EventHandler(Masters_Init);
}