六合开奖结果现场直播欢迎诸位!收藏本站注 册登 陆
常用三肖中特马:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 三肖中特马 > 文章页

aspx页面载入事件的先后顺序及说明

Admin | 2014-7-1 11:58:42 | ReadNums | 2290 | 标签 asp.net | 打印本页
     

  Page 执行中将按照如下顺序激活事件

  Page.PreInit
  Page.Init
  Page.InitComplite
  Page.PreLoad
  Page.Load
  Page.LoadComplete
  Page.PreRender
  Page.PreRenderComplete

  上面的这些代码,一般会用到这两个事件,一个是Page.Load,这个事件通用用来绑定数据到控件中。另外一个是Page.PreRenderComplete,当刚才的那个事件成功之后,就到这个控件了,将自己的代码放在Page.PreRenderComplete事件中,就可以对Page.Load绑定的数据进行操作了,否则,不讲究顺序和规则的话,有的时候压根就无法获取所需要的数据。比如,下面给大家一个代码示例:

  protected void Page_PreRenderComplete(object sender, EventArgs e) //页面控件数据绑定完成后的事件
  {
        if (Session["SubjectName"].ToString().Trim() != "") //
        {
            for (int i = 0; i < DropDownList1.Items.Count; i++)
            {
                if (DropDownList1.Items[i].Text.ToString().Trim() == Session["SubjectName"].ToString().Trim())
                {
                    DropDownList1.SelectedValue = Session["SubjectName"].ToString().Trim();
                    DropDownList1.Enabled = false;
                }
            }
        }
  }

  如果页面从另一个页面继承,如BasePage:System.Web.UI.Page,在BasePage中做了一些扩展,如权限检查,而其他页面从BasePage继承,则BasePage和最终Page的事件激活顺序是:

  UI.PreInit
  Page.PreInit
  UI.Init
  Page.Init
  UI.InitComplite
  Page.InitComplite
  UI.PreLoad
  Page.PreLoad
  UI.Load
  Page.Load
  UI.LoadComplete
  Page.LoadComplete
  UI.PreRender
  Page.PreRender
  UI.PreRenderComplete
  Page.PreRenderComplete

  如果使用了MasterPage,则MasterPage中的事件和ContentPage中的事件按照下面顺序激活:

  ContentPage.PreInit
  Master.Init
  ContentPage.Init
  ContentPage.InitComplite
  ContentPage.PreLoad
  ContentPage.Load
  Master.Load
  ContentPage.LoadComplete
  ContentPage.PreRender
  Master.PreRender
  ContentPage.PreRenderComplete

  如果ContentPage继承BasePage,那么,各事件的执行顺序将变成了

  UI.PreInit
  ContentPage.PreInit
  Master.Init
  UI.Init
  ContentPage.Init
  UI.InitComplite
  ContentPage.InitComplite
  UI.PreLoad
  ContentPage.PreLoad
  UI.Load
  ContentPage.Load
  Master.Load
  UI.LoadComplete
  ContentPage.LoadComplete
  UI.PreRender
  ContentPage.PreRender
  Master.PreRender
  UI.PreRenderComplete
  ContentPage.PreRenderComplete


问题未解决:在线咨询

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日