ASP.NET页面生命周期:方法vs事件

问题描述:

有人可以向我解释ASP.NET页面生命周期中方法和事件之间的区别吗?ASP.NET页面生命周期:方法vs事件

感谢

+0

MSDN有很好的细分:http://msdn.microsoft.com/en-us/library/ms178472.aspx#additional_page_life_cycle_considerations –

当页面运行一系列的方法被执行。这些方法反过来引发用户可以处理的事件,以执行各种任务,如初始化控件,填充控件属性,执行控件行为代码等。

这是一个很棒的MSDN流程图,显示了不同的方法执行,以及从这些方法引发的事件:

enter image description here

有关ASP.NET页面生命周期的更多信息,请参阅MSDN上的完整概述:
http://msdn.microsoft.com/en-us/library/ms178472.aspx

+0

你可以完全覆盖这些方法,但你也必须调用基方法。通过诸如Page_PreRender等事件,您不需要。那么为什么要使用一个呢? – River

+0

大多数情况下,这些方法只是包装事件调用,所以最终归结为是否需要在调用事件之前或之后执行您的工作。 –

PreInit -顾名思义,这个事件恰好发生在页面初始化事件开始之前。 IsPostBack,IsCallback和IsCrossPagePostBack属性在此阶段设置。此事件允许我们动态设置Web应用程序的母版页和主题。在使用动态控件时,PreInit被广泛使用。

初始 -页面Init,事件发生在Init事件之后,webform上所有单独的控件。使用此事件来读取或初始化控件属性。服务器控件从Web窗体的视图状态加载并初始化。

InitComplete -顾名思义,这个事件会在页面初始化后立即产生。

PreLoad -恰好在页面加载事件之前发生。

加载 -页面加载事件发生在该webform上所有单独控件的加载事件之前。

控制事件 -页面加载事件后,控件事件如按钮的点击,下拉列表的选定索引更改事件被引发。

加载完成 -处理控件事件后引发此事件。

PreRender - 此事件在页面呈现阶段之前引发。

PreRenderComplete -在PreRender事件之后立即引发。

卸载 -为每个控件然后为页面提出。在这个阶段,页面从内存中卸载。