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