• ASP.NET WebForm--事件


    事件

    生命周期

    当我们在 浏览器 地址栏中输入网址,回车查看页面时,这时会向服务器端IIS)发送一个request请求,服务器就会判断发送过来的请求页面,当完全识别 TTP页面处理程序类后,ASP.NET运行时将调用处理程序的 ProcessRequest 方法来处理请求、创建页面对象。通常情况下,无需更改此方法的实现,因为它是由 Page 类提供的。接下来被创建页面对象的ProcessRequest方法使页面经历了各个阶段:初始化、加载视图状态信息和回发数据、加载页面的用户代码以及执行回发服务器端事件。之后,页面进入显示模式:收集更新的视图状态,生成 HTML 代码并随后将代码发送到输出控制台。最后,卸载页面,并认为请求处理完毕。其中页面对象ProcessRequest方法 完成的这一系列事件的处理过程就是Asp.Net页面生命周期。

    生命周期阶段

    1. 请求页面:页请求发生在页生命周期开始之前。
    2. 开始:在开始阶段,将设置页属性,如Request和Response。在此阶段,页还将确定请求是回发请求还是新请求,并设置IsPostBack属性。
    3. 初始化页面:页面初始化期间,可以使用页中的控件,并将设置每个控件的UniqueID属性。如果当前请求是回发请求,则回发数据尚未加载,并且控件属性值尚未还原为视图状态中的值
    4. 加载页面:加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性。
    5. 验证:在验证期间,将调用所有验证程序控件的Validate方法,此方法将设置各个验证程序控件和页的IsValid属性。
    6. 回发事件处理:如果请求是回发请求,则将调用所有事件处理程序。
    7. 呈现页面:在页面呈现期间,视图状态将被保存到页面,然后页面将调用每个控件,以将其呈现的输出提供给页的Response属性的OutputStream。
    8. 卸载页面:完全呈现页、将页发送至客户端并准备丢弃时,将调用卸载。此时,将卸载页属性(如Response和Request)并执行清理。

    生命周期事件

    页面初始化 Page_Init
    加载View State LoadViewState
    回发数据处理 LoadPostData
    页面加载 Page_Load
    回发通知 RaisePostDataChangedEvent
    回发事件处理 RaisePostBackEvent
    页面预渲染 Page_PreRender
    保存 viewstate SaveViewState
    Page渲染 Page_Render
    Page 卸载 Page_UnLoad

    Page_Init

    aspx初始化时触发,只执行一次,常用于页面初始化,并且执行在page_load之前,如果在aspx的程序中需要使用该方法,那么该方法的类需要继承 System.Web.UI.Page

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace wangjin.Common
    {
    //因为类只能单继承,所以这儿必须继承page页,这样后面的类继承该类之后,也等同于继承了page类,并且有了该类的方法
       public class CheckSession:System.Web.UI.Page
        {
           //Init事件:aspx初始化时触发.
           public void Page_Init(object sender, EventArgs e)
           {
               if (Session["userInfo"] == null)
               {
                   Response.Redirect("UserLogin.aspx");
               }
           }
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    Page_Load 事件

    Page_Load 事件是众多 ASP.NET 可理解的事件之一。Page_Load 事件会在页面加载时被触发,然后 ASP.NET 会自动调用子例程 Page_Load,并执行其中的代码:

    <script runat="server">
    	Sub Page_Load
    	lbl1.Text="The date and time is " & now()
    	End Sub
    </script>
    
    <html>
    	<body>
    		<form runat="server">
    			<h3><asp:label id="lbl1" runat="server" /></h3>
    		</form>
    	</body>
    </html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    Page_Load 子例程会在页面每次加载时运行。如果您仅希望在页面第一次加载时执行 Page_Load 子例程中的代码,您可以使用 Page.IsPostBack 属性。如果 Page.IsPostBack 属性为 false,则页面第一次被载入,如果为 true,则页面传回服务器(例如,通过点击表单上的按钮):

    <script runat="server">
    	Sub Page_Load
    	if Not Page.IsPostBack then
    	  lbl1.Text="The date and time is " & now()
    	end if
    	End Sub
    	
    	Sub Submit(s As Object, e As EventArgs)
    	lbl2.Text="Hello World!"
    	End Sub
    </script>
    
    <html>
    	<body>
    		<form runat="server">
    			<h3><asp:label id="lbl1" runat="server" /></h3>
    			<h3><asp:label id="lbl2" runat="server" /></h3>
    			<asp:button text="Submit" onclick="submit" runat="server" />
    		</form>
    	</body>
    </html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
  • 相关阅读:
    Python列表:灵活与高效的数据结构
    Fritzing软件绘制Arduino面包板接线图传感器模块库文件287
    美创科技8个医疗数据安全场景化方案推出!
    学习大数据需要具备什么基础么?
    音视频入门基础:H.264专题(12)——FFmpeg源码中通过SPS属性计算视频分辨率的实现
    PotPlayer+Alist挂载并播放网盘视频
    java计算机毕业设计志愿者管理系统演示录像2020源码+mysql数据库+系统+lw文档+部署
    Iocomp Components Full Sources Product
    html静态网站基于HTML+CSS+JavaScript上海美食介绍网站网页设计与实现共计5个页面
    C++中的引用
  • 原文地址:https://blog.csdn.net/huan13479195089/article/details/127131390