为什么Asp.Net控件没有公开与......相同的事件?

时间:2009-11-25 20:27:43

标签: asp.net user-controls


用户控件接收与Page对象相同的事件,就像Page对象一样,它也公开了Application,Session,Request和Response对象。我意识到UserControl类和Page类都继承自相同的TemplateControl类,因此共享了许多相同的方法和事件。

但是为什么Asp.Net控件(如TextBox,Label,GridView等)也不会从与Page和UserControl类相同的类派生出来 - 换句话说,为什么像TextBox这样的控件是一个坏主意呢?有与UserControl和Page类相同的事件(Page_Load等)吗?


谢谢

1 个答案:

答案 0 :(得分:1)

最可能的原因是最小化自动事件连线的序列化大小。每次向WebForms中的处理程序添加事件时,它都会通过将其序列化到viewstate来持久存储。通过仅暴露可以被覆盖的方法(以树方式调用),您可以避免必须序列化这些方法调用。