我有一个基本控制:
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
为空的。