asp.net页面生命周期刷新

时间:2014-05-19 17:57:22

标签: c# asp.net

这似乎是一个非常重要的问题,但在实施我的计划时遇到了很多困难。

我的程序结构如下: Details

我有2个名为News.aspx和Contact.aspx的内容页面。这两个页面也包含用户控件。

我在.aspx页面和用户控件中都有PreInitLoad的代码包含Init方法。

如果用户当前在contact.aspx页面,然后他点击链接按钮移动到News.aspx页面,那么触发这些事件的顺序是什么?

当我提出断点并检查时,它按顺序进行。

Contact.aspx  PreInit
Contact.aspx Init
News.aspx    PreInit
News.aspx    Init

但即使有时候这种方式也可以。首先是News.aspx方法,然后是abc.aspx页面方法。

确切的订单是什么?除了使用java脚本之外,我在 onbeforeunload 中每次刷新页面都调用了web方法。在上面的场景中,方法调用如下:

  Contact.aspx  PreInit
    Contact.aspx Init
    Web Method () on Page Refresh
    News.aspx    PreInit
    News.aspx    Init

调用这些方法的正确顺序是什么?

1 个答案:

答案 0 :(得分:1)

这是生命周期事件的顺序:

  1. News.aspx - Page_PreInit
  2. UserControl.ascx - Page_Init
  3. MasterPage.master - Page_Init
  4. News.aspx - Page_Init
  5. News.aspx - Page_Load
  6. MasterPage.master - Page_Load
  7. UserControl.ascx - Page_Load
  8. 在初始化控件之前触发Page的PreInit事件,因此用户控件没有PreInit事件。请参阅http://msdn.microsoft.com/en-us/library/ms178472.aspx