当前位置: 代码迷 >> ASP.NET >> .NET1.1和2.0里控件事件的访问修饰符有所不同,哪位高手能告诉小弟我详细的原理
  详细解决方案

.NET1.1和2.0里控件事件的访问修饰符有所不同,哪位高手能告诉小弟我详细的原理

热度:8754   发布时间:2013-02-26 00:00:00.0
.NET1.1和2.0里控件事件的访问修饰符有所不同,谁能告诉我详细的原理
同为DropDownList控件
在1.1下生成的事件是私有的
例如
  private   void   ddlZT_SelectedIndexChanged(object   sender,   System.EventArgs   e)

在2.0下生成的事件是保护型的

我知道private是私有的,protected是可由派生类访问.

但是我在2.0下如果把   事件改为私有,服务器控件的动作就不能触发该事件了

谁能告诉我在两种环境下的不同,越详细越好。



------解决方案--------------------------------------------------------
你可以在2.0下
重写控件,这样方便调用
比1.1更灵活
------解决方案--------------------------------------------------------
主要是为了扩展把,以及安全性考虑?
------解决方案--------------------------------------------------------
对于codebehind代码类型,不论是1.1中的还是2.0中(partial修饰)的,都是页面实际类型的父类!

在asp.net1.1中,声明事件处理方法与注册事件委托的代码在同一个地方。在asp.net2.0中,在你的那种页面上,你仅仅声明它,而注册代码在子类中实现的。

实际上,你可以改为private后为类型增加一个实例化方法,其中手动注册你的方法。例如:

public _Default():base()
{
ddlZT.SelectedIndexChanged += new EventHandler(ddlZT_SelectedIndexChanged);
}


其实你可以为这一个SelectedIndexChanged 增加更多定义的方法,完全使用自己手动写代码注册。你可以自己主动增加好多功能处理,页面帮你注册一个你在页面html代码设计上声明的方法名,只是锦上添花帮你省一步。
------解决方案--------------------------------------------------------
从 sp1234(如果你还停留在两年前的技术水平,怎么办?)
学习了~~~~
  相关解决方案