日期:2014-05-19  浏览次数:20445 次

.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(如果你还停留在两年前的技术水平,怎么办?)
学习了~~~~