现在的位置: 首页 > 综合 > 正文

asp.net主要页面周期

2013年10月06日 ⁄ 综合 ⁄ 共 2718字 ⁄ 字号 评论关闭

新建页面pagecycle.aspx,页面代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="pagecycle.aspx.cs" Inherits="MyWebSiteTest.pagecycle" %>

<!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>
    <style type="text/css">
        body{font-family:Fixedsys Excelsior 3.01,Arial,Verdana,宋体; }
        p{ font-size:16px;padding:8px 10px 8px 30px;
           position:relative; border:1px solid #FCDEA7; 
           background-color:#f8f8d8; color:#333; line-height:1.5em;  }
        .txt{ border:none; width:550px; background-color:#31363E; color:#Fff; }
    </style>
    <script  type="text/javascript">
    <!--
            function __doPostBack(eventTarget, eventArgument) {
                Form1.__EVENTTARGET.value = eventTarget.split("$").join(":");
                Form1.__EVENTARGUMENT.value = eventArgument;
                Form1.submit();
            }
    // -->
    </script>

</head>
<body>
    <form id="Form1" runat="server">
    <input type="hidden" name="__EVENTTARGET" value="" />
    <input type="hidden" name="__EVENTARGUMENT" value="" />
    <div>
       <p>
        <ul>
            <li>源代码 :<span><</span><span>asp:</span><span>LinkButton ID="lbtn"</span>
                    <span>runat="server" onclick="lbtn_Click"></span><span>测试一下<</span><span>/asp:LinkButton></span></li>
            <li>
                html输出:<span><</span><span>a id="lbtn" href="javascript:__doPostBack('lbtn','')">模仿LinkButton回发事件<</span><span>/a></span>
            </li>
        </ul>
       </p>
       <%--<asp:LinkButton ID="lbtn" runat="server" onclick="lbtn_Click">测试一下</asp:LinkButton>--%><br />
       <a id="lbtn" href="javascript:__doPostBack('lbtn','');">模仿LinkButton回发事件</a>
    </div>
    </form>
</body>
</html>

后台代码:

namespace MyWebSiteTest
{
    /// <summary>
    /// 页面生命周期测试
    /// </summary>
    public partial class pagecycle : System.Web.UI.Page
    {
        protected void Page_PreInit(object sender, EventArgs e)
        {
            Response.Write("<p>Page_PreInit:在页初始化开始时发生</p>");
        }
        protected void Page_Init(object sender, EventArgs e)
        {
            Response.Write("<p>Page_Init:当服务器控件初始化时发生;初始化是控件生存期的第一步</p>");
        }
        protected void Page_PreLoad(object sender, EventArgs e)
        {
            Response.Write("<p>Page_PreLoad:当页load事件<span style=\"color:#f00;\">之前</span>发生</p>");
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (this.IsPostBack)
            {
                string target = Request.Form["__EVENTTARGET"] != null ? Request.Form["__EVENTTARGET"].ToString() : "";
                string args = Request.Form["__EVENTARGUMENT"] != null ? Request.Form["__EVENTARGUMENT"].ToString() : "";
                lbtn_Click(sender, e);
            }

            Response.Write("<p>Page_Load:这是Page_Load事件</p>");
        }
        protected void Page_LoadComplete(object sender, EventArgs e)
        {
            Response.Write("<p>Page_LoadComplete:当页初始化完成时发生</p>");
            Page_Disposed(sender, e);//显示调用
        }
        protected void Page_Disposed(object sender, EventArgs e)
        {
            //this.Page.Dispose();
            string str = "如不调用,则垃圾回收随机进行激发,垃圾回收是随机的不可知的(此处是显示的被Page_LoadComplete调用触发)";
            Response.Write("<p>Page_Disposed:页面从内存中卸载时发生<br/>" + str + "</p>");
        }

        protected void lbtn_Click(object sender, EventArgs e)
        {
            Response.Redirect("http://www.baidu.com");
        }
    }
}

抱歉!评论已关闭.