关闭

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

1248人阅读 评论(0) 收藏 举报
分类:

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

首先我新建一个窗体,拖上一个服务器按钮然后在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在执行自己的生命周期动态给这个接口实现了相应的类。我们点进去这个属性 囧好像不能添图片那我们下期再说吧


 

5
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:48597次
    • 积分:1057
    • 等级:
    • 排名:千里之外
    • 原创:50篇
    • 转载:5篇
    • 译文:0篇
    • 评论:23条
    最新评论