激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - 詳解ASP.NET頁面生命周期事件

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

2019-11-14 14:07asp.net教程網 ASP.NET教程

這篇文章介紹了ASP.NET頁面生命周期事件,有需要的朋友可以參考一下

下面是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時發生,這是生存期的最后階段??赡艿?和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);
}

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 国产精品免费一区二区三区都可以 | 久久精品一区二区三区国产主播 | 亚洲最黄视频 | 韩国十九禁高潮床戏在线观看 | 悠悠成人资源亚洲一区二区 | 国内精品国产三级国产a久久 | 成人午夜精品久久久久久久蜜臀 | 精品国产一区二区三区久久久蜜月 | 久久亚洲视频网 | 国产成人免费高清激情视频 | 久久久久久久久久综合 | 久久久久97国产精 | 欧美精品电影一区二区 | 免费在线观看成人av | 黄色7777| 久久精品视频一区二区三区 | 一区二区三区四区视频在线观看 | 久久久一区二区 | 黄色免费高清网站 | 欧美成人免费小视频 | 国产免费www | 五月婷婷第四色 | 福利在线免费 | 国产精品久久久久久久四虎电影 | 黄免费在线观看 | 国产成年人网站 | 日本a∨精品中文字幕在线 欧美1—12sexvideos | 福利在线国产 | 国产午夜精品久久久久婷 | 亚洲精品在线观看免费 | 国产精品99久久久久久董美香 | 一类黄色大片 | 欧美区在线 | 全黄性性激高免费视频 | 久久久久久久91 | 毛片在线免费观看视频 | 毛片网站网址 | 欧美成人高清视频 | 免费a级毛片永久免费 | 日本黄色免费播放 | 日韩视频一区二区 |