页面的回发与回传
页面事件顺序是固定的,但页面上的控件事件则依靠详细页面和用户的操作。假如控件的AutoPostBack属性配置为true(默认值为false),那么将立刻惹起页面回发,即页面中各个控件的值回传到Web服务器上,引发相应事件,由事件的处理程序处理。处理完成后假如没有跳转指令,该页面将再此发送到客户端的阅读器上。假如控件的AutoPostBack属性配置为false,那么它的事件将不会一发生就马上回传,而要等到像Button Click这样的回传事件发生,才一并回传。期间可能有多个事件被暂存在客户端,但是假如一个控件的一个事件重复发生,则只暂存结尾一次事件的信息。
假如页面的AutoEventWireup属性为false(默认值为true),那么页面回传后页面的事件将不会引发。AutoEventWireup属性能够在@ Page指令中配置,或者在Web.config文件中配置 autoEventWireup属性。
由于页面回发机制,程序员可能须要确定当前页面是第一次发送到客户端,仍旧由于事件回传造成的页面回发。比如:当对页面控件执行 原始化时,假如是第一次发送到客户端,则须要执行 原始化,如数据绑定等;假如是由于事件回传造成的页面回发,因为已经原始化过了,所以无需再次原始化。页面的IsPostBack属性就是专门用来做回发检验的。假如是回发,IsPostBack的值取true,否则取false。
由于页面回发机制,程序员可能须要确定当前页面是第一次发送到客户端,仍旧由于事件回传造成的页面回发。比如:当对页面控件执行 原始化时,假如是第一次发送到客户端,则须要执行 原始化,如数据绑定等;假如是由于事件回传造成的页面回发,因为已经原始化过了,所以无需再次原始化。页面的IsPostBack属性就是专门用来做回发检验的。假如是回发,IsPostBack的值取true,否则取false。
多思考,多创新,才是正道!