asp.net一个onclick的全过程(简单写一下)
2008-07-24 15:13
309 查看
1.ie页面初始化的时候把每个控件初始化位置(热区)
2.点击鼠标
3.如果点击时鼠标位置在IE的button位置 那么IE认为这个button被点击(调系统API了)
4.触发客户端onclick事件(调用js中系统生成的__doPostBack方法)并记录点击信息到viewstate等
5.submit到服务器
...........................http协议,IIS服务器,映射,runtime,framework............
6.如果请求是aspx(ascx,ashx等)http请求(hander)实例成page类,注册的控件实例成相应的服务器对象(button对象)
http请求在服务器是被.net框架解析成相应的类的对象,在服务器的操作实际上是对象间的操作,所以前台html页和page类没有任何直接关系,所谓的code-behind只不过是.net框架模拟出来的效果
7.request.form得到值(在ViewState里,ViewState放hiden里了),判断button是否被点击
8.如果被点击 执行button.click()方法(这个方法应该是被封装了)
9.button.click()方法里面定义委托
10.然后委托给页面方法去做
11.ok!这就是一个完整的请求
其它控件事件应该和这个类似,可能有不对的地方,请指出
还有,其中点击发生的源头只有一个那就是客户端的人点了一下鼠标
asp.net中控件的生命周期以控件的事件原理!对于标准的Form控件要实现IPostBackDataHandler和IPostBackEventHandler.这两个都是在PostBack才会引发的动作。当我们第一次请求页面的时候是不会做这两个动作的。但是当我们在页面上执行Button的时候,就会Submit Form.(asp.net中Web Button默认为Submit)。这个时候在服务器端通过Request.Form就会知道客户端的哪一个Button提交的,如果该Button有事件的话就会执行事件!
这里只不过是简单的说一下过程,详细情况请各位朋友看完整的aps.net生命周期
2.点击鼠标
3.如果点击时鼠标位置在IE的button位置 那么IE认为这个button被点击(调系统API了)
4.触发客户端onclick事件(调用js中系统生成的__doPostBack方法)并记录点击信息到viewstate等
5.submit到服务器
...........................http协议,IIS服务器,映射,runtime,framework............
6.如果请求是aspx(ascx,ashx等)http请求(hander)实例成page类,注册的控件实例成相应的服务器对象(button对象)
http请求在服务器是被.net框架解析成相应的类的对象,在服务器的操作实际上是对象间的操作,所以前台html页和page类没有任何直接关系,所谓的code-behind只不过是.net框架模拟出来的效果
7.request.form得到值(在ViewState里,ViewState放hiden里了),判断button是否被点击
8.如果被点击 执行button.click()方法(这个方法应该是被封装了)
9.button.click()方法里面定义委托
10.然后委托给页面方法去做
11.ok!这就是一个完整的请求
其它控件事件应该和这个类似,可能有不对的地方,请指出
还有,其中点击发生的源头只有一个那就是客户端的人点了一下鼠标
asp.net中控件的生命周期以控件的事件原理!对于标准的Form控件要实现IPostBackDataHandler和IPostBackEventHandler.这两个都是在PostBack才会引发的动作。当我们第一次请求页面的时候是不会做这两个动作的。但是当我们在页面上执行Button的时候,就会Submit Form.(asp.net中Web Button默认为Submit)。这个时候在服务器端通过Request.Form就会知道客户端的哪一个Button提交的,如果该Button有事件的话就会执行事件!
这里只不过是简单的说一下过程,详细情况请各位朋友看完整的aps.net生命周期
相关文章推荐
- 刚完成了一个ASP.NET 项目,简单的总结一下
- 编写、发布、配置一个ASP.NET 网站的过程(VS2008+Win7+IIS7)
- Asp.net 在网页编写C#代码示例-- 一个简单的web MsSql 命令执行环境
- 学习ASP.NET Core, 怎能不了解请求处理管道[3]: 自定义一个服务器感受一下管道是如何监听、接收和响应请求的
- 一个简单asp.net下Web RSS控件
- [导入]ASP.NET MVC框架开发系列课程(2):一个简单的ASP.NET MVC应用程序.zip(13.70 MB)
- 一个关于NTFS权限/DTS/ASP.Net的问题解决过程
- sql 存储过程 几个 简单例子,及在asp.net(C#)中调用存储过程的代码
- 一个看上去简单的问题(1):Asp.Net动态设定事件 - 1
- 一个"简单"的ASP.NET的服务器控件
- (转)通过ASP.NET Web API + JQuery创建一个简单的Web应用
- asp.net core 实现一个简单的仓储
- asp.net AutoCompleteExtender的一个简单例子代码
- ASP.NET通过配置Web.config文件提高手动绑定数据库效率的一个简单方法,不用每次手动连接数据库地址,或者数据库地址变更时只改一处即可。
- 自己写的一个asp.net的生成曲线图的过程
- 一个asp.net的生成曲线图的过程
- asp.net中非常简单的一个连接ACCESS的类
- drp用户管理完成后,asp.net与java的一个简单比较
- asp.net mvc 简单实现一个账号只能在一个地方登录
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler