- 控件事件和数据回发概述
- 深层了解一下Button 的事件:
假如我们没有对Button 注册Click 事件,则Button 会执行一遍它内部的Click 相关逻辑,并没有对Page 对象产生任何影响;如果我们为Button 定义了Click 事件(如上面代码片段),则Button 还是执行一遍它内部的Click 相关逻辑,不同的是在执行自己内部逻辑的过程中它还执行了Page 对象中的一些代码功(即Button 的事件体Button1_Click 方法),就达到了我们要实现的功能。通过触动一个对象Button 影响到另一个对象Page 的行为, 并且在Button 的事件体中即可以修改Button 本身( 通过sender 或this.Button1),也可以修改Page 页面对象的其他控件或执行任意想要的代码功能。其次从ASP.NET 工作机制说一下它的工作原理,与桌面应用程序中的事件不同,ASP.NET服务器控件事件是在服务器上引发和处理的。当Web 请求将客户端操作发送到服务器时,控件可以在服务器上引发事件来响应客户端操作。该页或其子控件对事件进行处理,然后ASP.NET 将响应发送回客户端。这样,用户感觉就像在使用桌面应用程序一样。但是,控件开发人员必须了解只有一个客户端事件发送到服务器,即回发事件。
- 数据回发机制
两次页面请求之间的数据关联性问题,ASP.NET 是通过视图机制实现的。简单地讲, 视图区域信息( ViewState)存储在页面上的一个隐藏字段,里面存储每次需要视图机制保存的一些信息,每次提交时,它都会以“客户端到