内容:
1.事件概述
2.ASP.NET中的服务端事件
3.ASP.NET服务端添加客户端事件
4.通过客户端事件引发服务端事件
5.事件使用的最佳实践

事件概述
VS项目很容易被看作一系列顺序执行的过程。事实上,多数程序都是事件驱动的,即执行流程是由外界发生的事件所确定的。
事件是一个信号,它告知应用程序有重要情况发生。例如,用户单击窗体上的某个控件时,窗体引发一个Click事件并调用一个处理该事件的过程。

c#中使用事件的步骤
1.创建一个委托
2.将创建的委托与特定事件相关联
3.编写事件处理程序
4.利用编写的事件处理程序生成一个委托实例
5.把这个委托实例添加到产生事件对象的事件列表中去,这个过程叫订阅事件。

ASP.NET中的事件
ASP.NET支持3个主要的事件组
1.第一组包含在asp.net生成页面时自动发生,我们使用这些事件建立页面
2.第二组包含了用户与页面交互时发生的所有事件(最强大)
3.第三组是HTML内部的事件,这些事件在浏览器上执行

asp.net窗口事件处理
事件驱动是窗口程序设计的核心,其重要性就相当于VC中的消息映射,不了解事件驱动就无法深入窗口程序设计的殿堂。
在C#语言中,事件的处理主要有两种方法:1.委托式的事件处理模式(Delegation Event Modal) 2.对可重载方法(Event Method)的重载。

委托式的事件处理模式
就是将特定的事件委托给负责事件处理的方法来进行
在.NET中,类有数据成员和函数成员、事件成员,事件成员就是与该类的对象相关的事件
事件处理可通过委托关系来进行,委托关系可以这样来建立:
object.Event+=new EventHandle(Method);
其含义是:如果对象object发生了Event事件,就交由方法Method来处理。一个对象可以委托多个不同的处理。"+="用来增加新的委托关系。
method是真正进行事件处理的地方,格式为:
public void Method(object sender,EventArgs e)
EventArgs是.NET Framework中有关事件的基础类,所有发生的事件都被包装成EventArgs类或其子类的对象。当事件发生时,Method会收到这两个参数,一旦建立了委托关系,系统自动在特定事件发生时,转而执行您所委托的事件处理方法。

重载事件方法
在c#中,针对不同类所相关的事件,除了定义有事件成员外,也定义了可重载的事件方法,可通过重载这些事件方法来设计你所希望的对应事件处理。
这些可重载的事件方法名称皆以"on"开头,但被声明为"virtual",一个被声明成"virtual"的方法,就代表它可被重载,被声明成override的方法也代表它可被重载,如果被声明生abstrct,则必须被重载,例如按钮的Click事件,就有对应的可重载的OnClick事件方法。
 
ASP.NET服务端事件
实例:Click事件的处理可以有三种方法:1.通过设计器添加事件处理 2.自己编写事件处理,并手动关联事件与委托实例 3.编写自定义控件,在控件类中重载事件处理:protected override void OnClick(EventArgs e)
  {
   this.Page.Response.Write("重载");
  }

ASP.NET服务端添加客户端事件
尽管从技术角度来讲,ASP.NET服务器控件的所有功能都可以在服务器端执行,但通常情况下添加客户端脚本可以大大增强服务器控件的可用性。例如,ASP.NET验证WEB控件可以在服务器端执行所有的验证检查,但是对于高版本浏览器,验证WEB控件也会发送客户端脚本,以在客户端验证。

ASP.NET服务器控件可以发送两种客户端脚本:1.客户端脚本块,通常是用JavaScript编写的,其中通常包含在发生特定的客户端事件时执行的函数。2.客户端HTML属性,提供将客户端事件和客户端脚本联系在一起的方法。

ASP.NET中发送客户端脚本块
使用System.Web.UI.Page类包含的两个方法可以将客户端脚本代码发送到由ASP.NET WEB页面提供的HTML中:
1.RegisterStartupScript(key,script):在web窗体的结尾处(在</form>标识之前发送)发送脚本块。
2.RegisterClientScriptBlock(key,script),在web窗体的开始处(紧接着<form runat="server">标识之后)发送脚本快。

ASP.NET中发送HTML属性
这种方法通常只适于从System.Web.UI.WebControls.WebControl类导出的服务器控件,因为从这个类导出的控件会发送某些HTML元素。
WebControl类包含一个将HTML元素属性添加到由WEB控件发出的HTML元素的方法。该方法称为AddAttributesToRender(),它只有一个输入参数,即HtmlTextWriter的实例。