一个按钮被点击之后背后的故事(1)

服务器按钮点击背后的故事

首先我新建一个窗体,拖上一个服务器按钮然后在Page_Load事件打上这么一段话

        Response.Write(this.GetType().Assembly.Location);
       输出C:\Users\pc1\AppData\Local\Temp\Temporary ASP.NET Files\website\b68fbf31\a98b13a6\App_Web_lps21nlu.dll

找到这个dll拖入反编译器  

在这里之前我觉得我有必要简单介绍一下页面生命周期

当然我说的非常简单,想深入一下的朋友们可以百度一下 当客户端向服务器提交请求的时候服务器会自动new一个页面对象 然后生成控件树,并执行ProcessRequest方法执行生命周期 而按钮点击 可以理解为回发,当用户点击按钮的时候会向服务器post。具体怎么执行的我们往下看。

  这里我直接进入ProcessRequestMain里说 页面执行ProcessRequest最终执行的就是这个方法

往下找我们会找到这么个方法。

这个方法就是服务器控件点击的核心方法我们打开msdn搜下这个方法的含义

这句话的意思就是处理按钮点击的事件 点击按钮的时候在内部会调用这个方法。


再注意

页面回发的时候执行的也就是 可以简单的理解就是点击服务器按钮执行的(虽然这么说不太恰当)

  点进去我们发现

页面先调用this的这个方法 而我们发现这里的不会是this还是control的这个字段都是IPostBackEventHandler类型

也就是我们再点进去这个方法会发现

很明显最终调用是这个方法,也就是说控件的这个属性必须有RaisePostBackEvent(eventArgument);可是控件这个属性本身是没有这个方法的。也就是说Control在执行自己的生命周期动态给这个接口实现了相应的类。我们点进去这个属性 囧好像不能添图片那我们下期再说吧


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值