好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > ASP.NET的事件模型(很適合學習的文章)

ASP.NET的事件模型(很適合學習的文章)

熱門標簽:保山電話外呼管理系統怎么用 電話機器人廣告話術 外呼系統用員工身份證 淘寶地圖標注如何做 使用智能電話機器人違法嗎 朝陽市地圖標注 太原外呼電銷機器人費用 東莞語音電銷機器人排名 蘇州銷售外呼系統預算

在Default.aspx的頁面中第一行是一條頁面指令:

%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AspxEventsModel._Default" %>

其中CodeBehind屬性指定代碼隱藏頁面的名稱,Inherits指定所屬的命名空間和類,AutoEventWireup屬性是可以賦值為true和false,默認是賦值為true。
我們先在Default.aspx頁面中放入兩個Literal控件:

復制代碼 代碼如下:

        asp:Literal ID="LiInit" runat="server">/asp:Literal>
        br />
        asp:Literal ID="LiLoad" runat="server">/asp:Literal>

在Default.aspx.cs頁面中,默認會存在Page_Load方法,定義如下:

復制代碼 代碼如下:

        protected void Page_Load(object sender, EventArgs e)
        {
            this.LiLoad.Text = "這是在頁面Load事件";
        }

頁面被請求,在頁面加載的時候會執行該方法。

那么這個方法為什么會在頁面加載的時候執行,這個方法我們并沒有給它注冊給頁面相應的事件。
頁面的事件也有很多,我們列出一些重要頁面的事件看一下:
在Page類中存在下面的事件,Page類是頁面的基類:

復制代碼 代碼如下:

public event EventHandler InitComplete;
        public event EventHandler LoadComplete;
        public event EventHandler PreInit;
        public event EventHandler PreLoad;
        public event EventHandler PreRenderComplete;
        public event EventHandler SaveStateComplete;

在Control類中存在下面的事件,Control類是Page類的基類:
復制代碼 代碼如下:

public event EventHandler DataBinding;
public event EventHandler Disposed;
public event EventHandler Init;
public event EventHandler Load;
public event EventHandler PreRender;

我們對這其中比較關注的事件提取出來,并根據事件的執行順序來排序:
PreInit:在頁面的初始化階段開始時引發
Init:在頁面的初始化時引發
InitComplete:在頁面的初始化結束時引發
PreLoad:在頁面的加載階段開始時引發  
Load:在頁面的加載時引發
LoadComplete:在頁面的加載結束時引發
PreRender:在頁面即將被呈現時引發

我們看到頁面事件有很多,主要來研究Init和Load這兩個事件。在Default.aspx.cs頁面中,添加Page_Init方法,定義如下:

復制代碼 代碼如下:

        protected void Page_Init(object sender, EventArgs e)
        {
            this.LiInit.Text = "這是在頁面Init事件";
        }

那么還是回到上面的問題,為什么會在頁面請求之后執行Page_Init、Page_Load方法?原因是:
ASP.NET中AutoEventWireup="true",使頁面與某些特殊的事件方法綁定,自動識別這些具有特定名稱的方法,而不需要進行注冊事件。
這些特定名稱包括:Page_Init, Page_Load等。這里就說明:Init事件會自動與Page_Init方法綁定,Load事件自動與Page_Load方法綁定。當然這些都是AutoEventWireup="true"的功勞,當我們AutoEventWireup="false"的時候,再次請求頁面的時候,Page_Init、Page_Load方法是不會被執行的。那么我們可以顯示注冊事件:
復制代碼 代碼如下:

        protected override void OnInit(EventArgs e)
        {
            this.Init += new EventHandler(this.Page_Init);
            base.OnInit(e);
        }
        protected override void OnLoad(EventArgs e)
        {
            this.Load += new EventHandler(this.Page_Load);
            base.OnLoad(e);
        }

那么OnInit和OnLoad又是什么來頭呢?
它們是Control類中定義的虛方法,所以我們可以在它的子類里面進行重寫。
看ASP.NET 的注釋是這樣描寫的:
OnInit:引發 System.Web.UI.Control.Init 的事件。
OnLoad:引發 System.Web.UI.Control.Load 的事件。

很好啊,我們在這邊對它們重寫,并注冊事件合情合理。
我們把對Init注冊事件語句放到OnLoad方法中,把對Load注冊事件語句放到OnInit方法中,是兩個處理的內容交換一下看看會有什么結果:

復制代碼 代碼如下:

        protected override void OnInit(EventArgs e)
        {
            this.Load += new EventHandler(this.Page_Load);
            base.OnInit(e);
        }
        protected override void OnLoad(EventArgs e)
        {
            this.Init += new EventHandler(this.Page_Init);
            base.OnLoad(e);
        }

我們請求頁面發現:在OnInit方法中對Load注冊事件執行了,在OnLoad方法中對Init注冊事件并沒有執行。原因是在執行OnInit方法之后,就表示Init事件已經響應完成,在之后再對Init事件注冊方法,并不會得到調用。而在OnInit方法中對Load注冊事件的時候,Load事件并沒有開始觸發,這個時候對Load注冊事件是有效的。所以現在我們很多時候,都形成了一種規范,只會重寫OnInit方法,不重寫OnLoad方法,也能完成我們的需求。所以在有些框架里面看不到OnLoad方法就是這樣形成的。我們把Default.aspx.cs頁面調整成:
復制代碼 代碼如下:

        protected override void OnInit(EventArgs e)
        {
            this.Init += new EventHandler(this.Page_Init);
            this.Load += new EventHandler(this.Page_Load);
            base.OnInit(e);
        }

很明顯我們覺得不需要Page_Init和Page_Load方法,我們再次調整為:
復制代碼 代碼如下:

        protected override void OnInit(EventArgs e)
        {
            this.LiInit.Text = "這是在頁面Init事件";
            this.LiLoad.Text = "這是在頁面Load事件";
            base.OnInit(e);
        }

我附上調試的源碼Default.aspx:
復制代碼 代碼如下:

%@ Page Language="C#" AutoEventWireup="false" CodeBehind="Default.aspx.cs" Inherits="AspxEventsModel._Default" %>
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head runat="server">
    title>/title>
/head>
body>
    asp:Literal ID="LiInit" runat="server">/asp:Literal>
    br />
    asp:Literal ID="LiLoad" runat="server">/asp:Literal>
/body>
/html>

Default.aspx.cs:
復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace AspxEventsModel
{
    public partial class _Default : System.Web.UI.Page
    {
        protected override void OnInit(EventArgs e)
        {
            this.LiInit.Text = "這是在頁面Init事件";
            this.LiLoad.Text = "這是在頁面Load事件";
            //this.Init += new EventHandler(this.Page_Init);
            //this.Load += new EventHandler(this.Page_Load);
            base.OnInit(e);
        }
        //protected override void OnLoad(EventArgs e)
        //{
        //    this.Load += new EventHandler(this.Page_Load);
        //    //this.Init += new EventHandler(this.Page_Init);
        //    base.OnLoad(e);
        //}
        //protected void Page_Init(object sender, EventArgs e)
        //{
        //    this.LiInit.Text = "這是在頁面Init事件";
        //}
        //protected void Page_Load(object sender, EventArgs e)
        //{
        //    this.LiLoad.Text = "這是在頁面Load事件";
        //}
    }
}


好了,趕快自己動手試試吧。

您可能感興趣的文章:
  • js DOM模型操作
  • js事件模型與自定義事件實例解析
  • javascript事件捕獲機制【深入分析IE和DOM中的事件模型】
  • javascript事件模型介紹
  • javascript事件模型實例分析
  • Javascript基礎知識(一)核心基礎語法與事件模型
  • 事件模型在各瀏覽器中存在差異
  • 關于javascript DOM事件模型的兩件事
  • 帶你快速理解javascript中的事件模型

標簽:運城 洛陽 綏化 潛江 西藏 呼倫貝爾 克拉瑪依 阿里

巨人網絡通訊聲明:本文標題《ASP.NET的事件模型(很適合學習的文章)》,本文關鍵詞  ASP.NET,的,事件,模型,很,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET的事件模型(很適合學習的文章)》相關的同類信息!
  • 本頁收集關于ASP.NET的事件模型(很適合學習的文章)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产愉拍91九色国产愉拍| 全彩口工h无遮挡动漫| 波多野爆吞多人精子| 《军官夫人》电影免费观看| 日本xxxxxxx19| 麻麻的屁股夹得我好爽| 最新91精品老司机在线| 久久久无码国产精品| 久久午夜无码鲁丝片秋霞欧美| 父女情深高h最新| 亚洲色久精品久久久李丽珍| 欧美AV无码国产在丝袜线观看| 男生擦进女人下身全视频国产 | 少妇视频直播喷奶水在线播放网站 | 精品秘?无码一区二区三| 久久窝窝国产精品午夜看15| 我与futa女总裁的羞耻生活| 重口虐茎虐睾丸| 男男超H+高H+污肉| 性关系视频免费网站在线观看| 新婚无套啪啪对白| 做那个的软件视频| 欧美一区二区三区四区精华液| 办公室中文bd| 黄色夫妻性生活片| 八个男人躁我一个| 啊?老师?嗯?轻一点作文来| 国产黄a三级三级三级看三级| 国产精品天天在线| 老**毛片a级| 亚洲人成日本在线观看| 色情大片既视感在线播放| 77777免费观看电视剧推荐| 日本丰满大乳| 女贱奴请主人踩贱乳调教| 成人午夜高潮免费视频妓女| 老牛视频2024年最新产品预告| h嗯啊稚嫩奶娃乱女| 国产一级淫片免费播放| 男生扒开美女尿口戳戳| 日韩和的一区二区区别是什么知乎|