暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ASP.Net之笔记09-03(页面声明周期完整版)

百变则是新 2019-08-18
257



页面声明周期完整版


1、页面生命周期中,第4步,还有一个过程,找到改变了的控件和点击的控件。它是怎么知道你点击了哪个按钮?根据你提交到后台的按钮Id 来确定。
2、页面加载,也是分为三个步骤:预加载(PreLLoad)加载(Load)第二次处理回发数据加载完成(LoadConplete)
    1)第二次处理回发数据是为了页面加载中,动态创建的控件。Page_Load中动态创建的控件,也会有事件的响应处理。
    2)那么我们Page_Load中动态创建的控件能不能触发改变事件 和 事件点击事件呢?也可以触发,在页面生命周期第4步,我们通过第一次处理回发数据,已经找到了改变的控件 和 点击的控件。那么我们Page_Load中创建的控件没有放到对应的集合里面去。所以就有了第二次处理回发数据。
    3)第二次处理回发数据是为了页面加载中,动态创建的控件,也能够享受 文本框改变、点击等这些事件。
3、WebForm中,后台通过代码创建的控件,要显示到前台页面中去,就要将创建的控件添加到页面表单对象的控件集合中去。
    eg:TextBox txtBoxAdd = new TextBox();
        this.form1.Controls.Add(txtBoxAdd);
4、页面中Page_Load事件先执行,然后再执行控件的事件。从生命周期的第5步和第6步就可以看出。
5、在页面生命周期 第7步,如果还没有改变页面控件状态,后续的步骤就不允许改了,这是最后改变页面控件状态的机会。
6、在页面生命周期 第9步(渲染),把整个aspx页面生成Html的过程。
7、在页面生命周期 第10步(卸载),然后继续回到 管道 流程中,继续第12个事件,以及后续的流程。
8、页面生命周期 第1步,创建页面控件树
    1)网站生成的dll,只有咱们代码后置类生成的代码,没有前台页面生成的类型。前台页面的类型是动态编译的。
   2)什么叫动态编译?咱们第一次请请求的时候,它会把这个页面编译成一个类型,动态编译的。
    3)我想看这个页面动态编译的类型怎么办?想看这个代码的程序集的话,通过反射拿到这个程序集通过下述代码,拿到我们当前程序集所在的位置。
       eg:string assemblyPath = Assembly.GetExecutingAssembly().Location;
        //这个还是咱们生成bin目录下的程序集,只是把它拷贝到了 临时目录中去。
        //我们把它写在了后台代码中,拿到的程序集就是后台代码的程序集。
   4)我现在想要拿到页面的类型的程序集,其实还是这段代码。咱们在前台页面中写这句C#代码,只不过要在当前页面子类中引入反射的程序集,在前台页面中引入程序集的方法见下述代码【重点,新点】:
        eg:
            <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
            <!-- 引入C#命名空间 -->
            <%@ Import Namespace="System.Reflection" %>
            <!DOCTYPE html>

            <html xmlns="http://www.w3.org/1999/xhtml">
            <head runat="server">
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
                <title></title>
            </head>
            <body>
                <form id="form1" runat="server">
                <div>
                    <!-- 查看当前页面子类型,动态生成程序集的位置 -->
                    <% Response.Write(Assembly.GetExecutingAssembly().Location) %>
                </div>
                </form>
            </body>
            </html>


文章转载自百变则是新,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论