我继承WebControl的时候,里面的按钮事件,不能在protected override void CreateChildControls() 里声明事件,只能在INT事件里声明.
但如果继承 Control就可以在protected override void CreateChildControls()里面定义事件了,
我知道WebControl继承Control,能讲讲原因吗?

解决方案 »

  1.   

    估计和控件执行生命周期中 CreateChildControls 执行的位置有关。MSDN 关于“控件执行生命周期”的说明,最底下有一句话:表中没有列出 CreateChildControls 方法,这是由于每当 ASP.NET 页框架需要创建控件树时就会调用该方法,且该方法调用并不限于控件生命周期的特定阶段。例如,可以在加载页时、在绑定数据过程中或者在呈现过程中调用 CreateChildControls。可能 Control 和 WebControl 的实现代码在调用 CreateChildControls 方法的位置不同。一般来说,建议在 Init 事件里对控件进行初始化,包括事件绑定。这和 IDE 自动生成的代码所示一致。