Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么不’;Asp.Net控件公开与…;相同的事件;?_Asp.net_User Controls - Fatal编程技术网

为什么不’;Asp.Net控件公开与…;相同的事件;?

为什么不’;Asp.Net控件公开与…;相同的事件;?,asp.net,user-controls,Asp.net,User Controls,用户控件接收与页面对象相同的事件,就像页面对象一样,还公开应用程序、会话、请求和响应对象。我意识到UserControl类和Page类都继承自同一个TemplateControl类,因此共享了许多相同的方法和事件 但是,为什么Asp.Net控件(如TextBox、Label、GridView等)不与Page和UserControl类派生自同一个类?换句话说,为什么TextBox等控件与UserControl和Page类具有相同的事件(Page_Load等)是个坏主意 谢谢这样做的一个最可能的原


用户控件接收与页面对象相同的事件,就像页面对象一样,还公开应用程序、会话、请求和响应对象。我意识到UserControl类和Page类都继承自同一个TemplateControl类,因此共享了许多相同的方法和事件

但是,为什么Asp.Net控件(如TextBox、Label、GridView等)不与Page和UserControl类派生自同一个类?换句话说,为什么TextBox等控件与UserControl和Page类具有相同的事件(Page_Load等)是个坏主意



谢谢

这样做的一个最可能的原因是最小化自动事件wireup的序列化大小。每次向WebForms中的处理程序添加事件时,都会将其序列化为viewstate,从而跨页面请求持久化。通过只公开可以重写的方法(以树的方式调用),您不必序列化这些方法调用