我爱Aspx >> Asp.Net >> 漫谈ASP.NET 页面对象模型在回传数据处理的最后阶段,所有的页面控件反映了上一个被更新的状态,这些都是由于客户端的输入变化所引起的。接下来,Load事件将被页面执行。
有一些控件,在两次请求中如果某些敏感属性发生了变化,他们需要对此作出响应,并且完成一定的任务。例如,如果客户端的textbox控件的文本发生变化,这个控件就激发了TextChanged事件。根据自客户端的数据,如果控件的一个或多个属性发生了变化,每一个控件都可以精确的激发合适的事件来处理。这些控件实现了IPostBackDataHandler接口,这个接口中的LoadPostData方法在Load事件之后就被执行了。通过重定义LoadPostData方法,控件可以验证两次请求中发生的变化并且激起相关的事件处理程序。
在一个页面周期中的关键事件是那些由客户端事件激发在服务器执行一段代码的事件。例如,当用户点击一个按钮,页面就需要回传。这个事件的处理是从按钮ID和值的收集开始的。如果控件是实现了IPostBackEventHandler接口(Button和LinkButton就是这样的情况),页面构架将调用RaisePostBackEvent方法。这个方法的具体情况是取决于控件的类型的。在上面提到的Button和LinkButton控件,这个方法就将寻找Click事件处理程序。
处理了回传事件之后,页面就准备被发送出去了。这个阶段是从PreRender事件开始的。这对于控件来说,那些需要在视图信息被保存与结果被发送之前这段时间里执行的动作,这是一个很好的时机。下一步就是SaveViewState ,所有的空间和页面本身就把视图状态的集合内容保存起来。接下来,视图状态被串行化、哈希编码、Base64 编码,并且保存在__VIEWSTATE隐藏域里。
各个控件的发送机制可以通过重定义Render方法来改变。这个方法构建了一个HTML writer对象,用它来为控件产生HTML代码。对Page类里Render方法的默认执行包含了对所有成员控件的递归调用。页面为每一个控件调用一次Render方法,并缓冲HTML输出。
Ҷƪл˵?
ASP.NET+XML打造网络硬盘[05-20]
ASP.NET程序中常用的三十三种代码[05-20]
asp.net 1.1中url重写的问题[05-20]
ASP.NET+AJAX解决网页打开等待问..[05-20]
编写ASP.NET应用程序的十大技巧[05-20]
ASP.Net实现将Word转换PDF格式[05-20]
深入探讨.NET中的钩子技术[05-20]
ASP.NET中实现Flash与.NET的紧密..[05-20]
WIN 2003下ASP.Net站点无法使用用..[05-20]
Asp.Net 学习资源列表[05-20]
ASP.NET+XML打造网络硬盘[05-20]
ASP.NET程序中常用的三十三种代码[05-20]
Visual Studio 2005 中的新的 Da..[05-20]
asp.net 1.1中url重写的问题[05-20]
ASP.NET+AJAX解决网页打开等待问..[05-20]
编写ASP.NET应用程序的十大技巧[05-20]
ASP.Net实现将Word转换PDF格式[05-20]
深入探讨.NET中的钩子技术[05-20]
ASP.NET中实现Flash与.NET的紧密..[05-20]
WIN 2003下ASP.Net站点无法使用用..[05-20]