亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

詳解ASP.NET頁面生命周期事件

2024-07-10 13:15:48
字體:
來源:轉載
供稿:網友

下面是ASP.NET頁面初始的過程:
1. Page_Init();
2. Load ViewState;
3. Load Postback data;
4. Page_Load();
5. Handle control events;
6. Page_PreRender();
7. Page_Render();
8. Unload event;
9. Dispose method called;

下面對其中的一些過程作下描述:
1. Page_Init();
這個過程主要是初始化控件,每次頁面載入執行這個初始過程,包括第一次和以后的Postback(這里說下Postback,其實就可以簡單理解成用戶點擊SUBMIT按鈕之類的,把表單<Form>提交給服務器,這就是一次postback),在這里面可以訪問控件,但是這里面的控件值不是我們期待的控件里面的值,他只是一個控件的初始值(默認值),舉例: 比如一個TextBox1,我們填入了”哈哈”,在點擊SUBMIT提交了頁面后,在Page_Init()里面,我們訪問到的TextBox1.Text不是我們的”哈哈”,而是開始的”"空字符串,如果TextBox1在我們設計的時候提供了默認值,這里訪問到的也就是提供的默認值,為什么呢,這就要看下一個過程了.

對應的事件Page.Init

2. Load ViewState
這個過程是載入VIEWSTATE和Postback數據,比如我們上面的TextBox1,這時就賦了”哈哈”,所以,在Post_Init()對控件賦值是無意義的,它都會在這個過程里被改寫,當然第一次頁面載入例外,因為沒有VIEWSTATE數據。

沒有對應的事件

3.Load Postback data;
上面說了,Postback可以理解成用戶提交表單數據,所以這里就是處理表單數據,當然這里要設計到控件的設計,一般情況不會要我們自己處理這個過程,我們暫且略過. (在以前那篇關于ASP.NET頁面生命周期的簡單描述中,把這個過程和Load ViewState放在了一起,其實那是微軟提供的生命周期過程,這里單獨提出來是為了讓大家明白這是一個單獨的過程)

沒有對應的事件
4. Page_Load();
這個過程也是每次頁面載入時一定會執行的,但是注意和Page_Init的區別,上面已經涉及了,這里注意的是一般都會用到Page.IsPostBack,該值指示該頁是否正為響應客戶端回發而加載,或者它是否正被首次加載和訪問。

復制代碼 代碼如下:


private void Page_Load(object sender, System.EventArgs e)
{
  if(!Page.IsPostBack)
  {
    //第一次執行的CODE HERE
  }
  else
  {
    //用戶提交FORM(即Postback)CODE HERE
  }

  //每次這里的都回執行CODE HERE
}


對應的事件Page.Load

5. Handle control events;
這個過程里,相應具體的控件事件,比如private void ListBox1_SelectedIndexChanged(object sender, System.EventArgs e)事件等等

沒有對應的事件(我們自己的事件函數都包括在這個過程里比如上面的ListBox1_SelectedIndexChanged)

6. Page_
預先呈遞對象,這里是在向用戶程序呈現數據的倒數第二步,我估計提供這個過程的意義,也就是在這里能對控件屬性等等要呈現給用戶的數據進行修改,這也是最后的修改,以前的修改(比如在Page_Init里面)都可能被覆蓋.做完這了還會進行一個操作就是保存狀態,即SaveViewState.

對應的事件時Page.PreRender

7. Page_Render();
大家可以在瀏纜器里View->Source查看到,每個頁面都有一個隱藏的<input>,這里面的”__VIEWSTATE”就是我們服務器寫回來的頁面狀態信息,在這個之前,服務器要呈現頁面(也就是構造HTML格式的文件),就是從這個”__VIEWSTATE”里面獲取的數據,當然大家也注意到了,這里有個Page.Render事件,我們可以添加自己的處理代碼,也就是說我們又可以更改數據,不過這里推薦不要在這里修改,既然提供了PreRender,就應該在里面做最后的修改,當然這不是必須的,只是推薦!

對應的事件Page.Render

8. Unload event;
大家應該明白,當想服務器請求一個對象的時候,就會在內存里生成一個繼承頁面對象,也就是頁面的類,它繼承自System.Web.UI.Page.
當頁面對象從內存中卸載時發生,將觸發該事件.

對應的事件Page.Unload

9. Dispose method called;
銷毀所有的對象.當從內存釋放Page時發生,這是生存期的最后階段。可能第8和9似乎有些模糊,不過我也沒怎么搞清楚,待研究!

對應的事件Dispose

以上就是ASP.NET頁面周期的描述。

注意上面灰色背景的文字,如果一個過程中有對應的事件,我們可以自己定義一個函數(當然先在MSDN中找到函數原型),然后在
InitializeComponent中向事件的鏈表上添加上去,像下面:

復制代碼 代碼如下:


private void InitializeComponent()
{  
  this.Unload += new System.EventHandler(this.MainWebForm_Unload);
  this.Load += new System.EventHandler(this.Page_Load);
  this.Init += new System.EventHandler(this.Page_Init);
  this.PreRender += new System.EventHandler(this.My_PreRender);
}


對于幾個沒有對應事件的過程,比如2.Load ViewState,我們可以重載Page的虛函數protected override void LoadViewState(object savedState);來添加自己的控制代碼,不過切忌掉用基類的對應方法,比如:

復制代碼 代碼如下:


protected override void LoadViewState(object savedState)
{
  //自己處理VIEWSTATE
  base.LoadViewState (savedState);
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久久久久久久久| 欧美激情va永久在线播放| 91国内揄拍国内精品对白| 国产成人avxxxxx在线看| 日韩视频在线观看免费| 国产亚洲精品久久久久久777| 2020国产精品视频| 久久亚洲精品毛片| 日韩欧美亚洲范冰冰与中字| 欧美精品成人91久久久久久久| 亚洲精品综合久久中文字幕| 亚洲国模精品私拍| 欧美久久久精品| 日韩国产高清污视频在线观看| 国产成人精品免高潮在线观看| 精品亚洲国产成av人片传媒| 亚洲一品av免费观看| 亚洲第一精品久久忘忧草社区| 久久久久久噜噜噜久久久精品| 国产裸体写真av一区二区| 国产91在线视频| 亚洲一区二区三区sesese| 久久精品成人动漫| 中日韩午夜理伦电影免费| 亚洲自拍偷拍福利| 青青久久aⅴ北条麻妃| 一个色综合导航| 亚洲福利影片在线| 在线观看日韩视频| 日韩av免费网站| 欧美精品免费播放| 精品久久久999| 亚洲一级片在线看| 成人精品久久av网站| 国产人妖伪娘一区91| 在线日韩精品视频| 中文字幕在线看视频国产欧美在线看完整| 91日本在线视频| 91成人天堂久久成人| 在线视频一区二区| 亚洲欧美在线x视频| 日韩av在线免播放器| 91po在线观看91精品国产性色| 欧美性受xxxx黑人猛交| 亚洲欧美在线磁力| 欧美一区第一页| 精品日本高清在线播放| 亚洲免费高清视频| 亚洲成色www8888| 欧美视频免费在线| 亚洲成人黄色在线观看| 精品无人区太爽高潮在线播放| 一区二区亚洲欧洲国产日韩| 91精品国产综合久久香蕉922| 国产99视频精品免视看7| 久久成人国产精品| 亚洲国产精品福利| 欧美大胆a视频| 最近2019好看的中文字幕免费| 欧美疯狂做受xxxx高潮| 国产97色在线| 亚洲成年人影院在线| 亚洲国产成人爱av在线播放| 亚洲精品xxxx| 国产精品欧美日韩一区二区| 国产精品一区二区三区久久| 精品久久久久久| 欧美精品999| 高跟丝袜欧美一区| 国产欧美精品日韩精品| 91久久久国产精品| 国产精品久久久久久搜索| 欧美日韩精品在线视频| 欧美精品999| 亚洲片av在线| 亚洲性线免费观看视频成熟| 午夜精品一区二区三区在线播放| 免费av在线一区| 亚洲人成电影网站色www| 国产97在线播放| 在线性视频日韩欧美| 国产精品久久久久久久久借妻| 亚洲精品视频二区| 欧美高清视频一区二区| 日韩欧美视频一区二区三区| 欧美华人在线视频| 中文日韩电影网站| 亚洲xxxx做受欧美| 日韩在线一区二区三区免费视频| 久久久久久中文字幕| 米奇精品一区二区三区在线观看| 欧美大片在线免费观看| 欧美精品成人在线| 国产乱肥老妇国产一区二| 久久久久久999| 国产极品jizzhd欧美| 日韩视频免费在线| 久久久亚洲国产天美传媒修理工| 亚洲一区久久久| 性亚洲最疯狂xxxx高清| 国产日韩中文在线| 国产精品久久久久高潮| 91精品国产综合久久香蕉| 性色av一区二区三区红粉影视| 91国偷自产一区二区三区的观看方式| 亚洲free性xxxx护士hd| 亚洲天堂影视av| 日本电影亚洲天堂| 精品国产91久久久久久老师| 欧美成人黄色小视频| 欧美性做爰毛片| 国产精品亚洲аv天堂网| 日本久久久久久久| 成人在线中文字幕| 亚洲成人xxx| 欧美一级视频在线观看| 亚洲精品国偷自产在线99热| 日韩亚洲精品视频| 欧美日韩亚洲成人| 中文字幕欧美精品在线| 国产在线拍偷自揄拍精品| 高跟丝袜欧美一区| 欧美激情精品久久久久久变态| 日本伊人精品一区二区三区介绍| 成人网在线观看| 久久久久久久999| 高跟丝袜一区二区三区| 91夜夜未满十八勿入爽爽影院| 亚洲精品在线看| 在线不卡国产精品| 中文字幕亚洲一区二区三区五十路| 日韩av综合网站| 亚洲男人的天堂在线播放| 81精品国产乱码久久久久久| 日韩欧美一区二区在线| 91精品成人久久| 国产精品极品美女粉嫩高清在线| 欧美精品福利在线| 亚洲一区亚洲二区亚洲三区| 国产成人福利视频| 欧美床上激情在线观看| 国产精品久久色| 日韩动漫免费观看电视剧高清| 欧美成人免费在线视频| 国产精品国产自产拍高清av水多| 国产精品99久久久久久白浆小说| 久久精品国产69国产精品亚洲| 亚洲精品久久久久久久久久久久| 不卡av在线网站| 国产日韩在线视频| 亚洲欧美激情精品一区二区| 国产精品第一页在线| 精品久久久久久国产91| 91热福利电影| 精品久久久中文| 成人444kkkk在线观看| 久久久精品国产亚洲| 国产精品成人久久久久| 亚洲日本中文字幕| 欧美裸身视频免费观看| 国产精品久久一区主播| 岛国av一区二区在线在线观看| 亚洲人成绝费网站色www| 国产亚洲福利一区|