Page_Init和Page_Load事件的区别

http://blog.sina.com.cn/s/blog_4e08c4820100ga17.html

Page_Init:是在页面未加载之前,也就是在页面初始化之前,在Page_Load之前调用的,可以在控件加载之前做一些客户端检测呀这些操作等。但这个事件对于当前用户来说,只会进行一次,也就是第一次访问这个页面的时候,其运行一次。
Page_Load:在Page_Init之后运行(废话),用于加载控制以及页面的其它内容。客户端每刷新或是提交一次,Page_Load事件就重新绘制页面,将当前页面当新页面来处理。

所以在Page_Load事件中经常要使用到IsPostback方法来判断是否第一次加载

当页面第一次加载时,IsPostBack==false(不是回发,相当页面第一次加载)

当页面第二次以上加载时,IsPostBack==true(是回发,说明不是第一次加载)

第一次加载页面IsPostBack为false,所以会进行数据表绑定和页面初始化,当触发AutoPostBack=True后,页面响应客户端回送服务器,这样就不再重新绑定数据表了(应该有利于提高页面执行效率),因为任何输入或构建的数据都已被保留(以视图方式),同时执行相应的 OnCheckedChanged事件,如果没有IsPostBack的判断,页面就不断重新绑定数据表和初始化,自然也就执行不到客户端触发的相应事件。


你可能感兴趣的:(C#)