惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
博客园 - 司徒正美
美团技术团队
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Troy Hunt's Blog
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
P
Proofpoint News Feed
云风的 BLOG
云风的 BLOG
Engineering at Meta
Engineering at Meta
Cisco Talos Blog
Cisco Talos Blog
T
Tor Project blog
B
Blog
NISL@THU
NISL@THU
月光博客
月光博客
博客园 - 【当耐特】
AWS News Blog
AWS News Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
腾讯CDC
L
Lohrmann on Cybersecurity
The Cloudflare Blog
L
LINUX DO - 最新话题
S
Security @ Cisco Blogs
S
Secure Thoughts
Spread Privacy
Spread Privacy
有赞技术团队
有赞技术团队
The Last Watchdog
The Last Watchdog
Project Zero
Project Zero
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Vercel News
Vercel News
H
Hacker News: Front Page
S
SegmentFault 最新的问题
Schneier on Security
Schneier on Security
aimingoo的专栏
aimingoo的专栏
P
Privacy & Cybersecurity Law Blog
博客园 - 三生石上(FineUI控件)
Forbes - Security
Forbes - Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
InfoQ
T
Tailwind CSS Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
G
GRAHAM CLULEY
W
WeLiveSecurity
小众软件
小众软件
Recorded Future
Recorded Future
Cyberwarzone
Cyberwarzone
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org

博客园 - miniflyfish

修改导入的博客图片地址链接 抓取新浪博客中的图片 blogml导入blogengine注意事项 xml repeater dataset资料备忘 将新浪博客导入到blogengine webmatrix、visualstidio2010、blogengine cs2.1的安装备忘 Adapter适配器模式(结构型模式) prototype原型(创建型模式) Factory Method 抽象工厂模式(创建型) builder生成器(创建型模式) Abstract Factory 抽象工厂(创建型模式) 代码存放样例 singleton单件(创建型模式) 面向对象设计模式与原则 ASP.NET中的XML ASP.NET WEB服务器控件的使用 AJAX简介与web2.0 web 服务
ASP.NET的事件处理
miniflyfish · 2006-03-29 · via 博客园 - miniflyfish

内容:
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的实例。