国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

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

2024-07-10 12:44:58
字體:
來源:轉載
供稿:網友

下面是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.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 依兰县| 绥阳县| 遵义市| 靖江市| 昆山市| 泸溪县| 武强县| 宁安市| 北宁市| 和政县| 新疆| 如皋市| 南郑县| 金寨县| 益阳市| 四子王旗| 南部县| 萍乡市| 大新县| 平罗县| 绥中县| 松阳县| 兖州市| 淮北市| 平谷区| 锡林郭勒盟| 峨边| 富蕴县| 宁强县| 溆浦县| 宽城| 新干县| 宁晋县| 洛阳市| 兴山县| 新营市| 台前县| 临猗县| 日喀则市| 铜梁县| 鹰潭市|