在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)
{
新聞熱點
疑難解答
圖片精選