我有一个基本控制:
public partial class BaseControl : System.Web.UI.UserControl
{
protected virtual void Page_Load(object sender, EventArgs e)
{
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
Page.LoadComplete += Page_LoadComplete;
}
protected virtual void Page_LoadComplete(object sender, EventArgs e)
{
Page.LoadComplete -= Page_LoadComplete;
}
}
然后我有一个由此派生的控件
public partial class MyChildControl : BaseControl
我遇到的问题是,如果我加载MyChildControl不止一次,那么我会Page.LoadComplete -= Page_LoadComplete;在BaseControl. 我有点明白为什么,但我有两个问题:
- 不应该每个
MyChildControl引用它自己的版本,BaseControl然后注册它自己的版本PageLoadComplete吗? - 如何检查它是否不为空?我好像做不到
!= null。
编辑:这似乎Page是空的,检查Page != null解决了这个问题,但我仍然不明白它是如何Page为空的。