ASP.net

    在Global.asax中导入命名空间
        <%@Global   ...
        <%@Import   Namespace= "System.Data "   %>
        <%@Import   Namespace= "System.Data.SqlClient "   %>
        ...

 

    MasterPage

    MasterPage是一种模板,它可以让你快速的建立相同页面布局而内部不同的网页,如果一个网站有多个MasterPage,那么新建aspx文件的时候就可以选择需要实现页面布局的MasterPage,子页面以控件的形式存在于模板中。
    contentplaceholder(内容占位符)的作用就是去“霸占”一个地方,而这个最终显示的,不是contentplaceholder,而是使用了master模板的Content。
    内容页就是用于替换母版页中的ContentPlaceHolder的ASP.NET页面,.aspx扩展名。
   
    使用:
        1.在WebSite中添加一个名字叫MasterPage.master的MasterPage
        2.创建一个aspx页面,注意创建的时候一定要勾上Select master page,则在该页面中便实现了对模板页面的引用.
   
    母版页与用户控件(User Control) 类似,主要的不同点有:
        (1)母版页的扩展名为.master,如Default.master。该扩展名和 System.Web.HttpForbiddenHandler 相关联,因此客户端浏览器不能直接访问到母版页。
        (2)母版页由@Master指令标记,不含有@Page或@Control指令。@Master中包含的指令和@Control中包含的指令基本相同。
            @Master指令
            <%@ Master Language="C#" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
        (3)母版页可以包含若干个ContentPlaceHolder控件。这些占位符控件定义了内容页(Content Page)的位置,并被内容页覆盖。
   
    母版页和内容页的组合及运行行为:
        2.1 URL
            前面已经说过,不能直接获取母版页,如:http://202.119.192.211/Example.master 这样的请求是不正确的。应该使用内容页的URL来请求某个页面。
        2.2 合并
            经过编译的母版页将被合并到内容页的控件树中,Content控件中的内容合并到相应的ContentPlaceHolder控件中。
            母版页是内容页的一部分,就和用户控件的行为相同。他们的关系是这样的:内容页是母版页的容器,母版页又是一个的容器,包含了内容页中相应Content中的控件。
        2.3 初始化次序
            (1)母版页-Init
            (2)内容页-Init
            (3)内容页-Load
            (4)母版页-Load
            (5)内容页-PreRender
            (6)母版页-PreRender
        2.4 页面执行环境及URL转换
            母版页和内容页合并后,页面的执行环境为内容页的环境,这样会不会导致母版页中资源引用或相对URL出现错误呢?对于服务器控件,ASP.NET可以自动解决这个问题,比如母版页上的一个Image控件,其ImageUrl为相对 URL:“images/banner.gif”,当母版页和内容页组合时,ASP.NET将其转换为合适的URL。对于非服务器控件或标记,如<IMG>,ASP.NET将不做任何转换,因此,在母版页中,应该尽量使用服务器控件。
        3 动态引用母版页
            内容页中可以动态地引用母版页,通常在PreInit中设置需要使用的母版页。如下:
            protected void Page_PreInit(object sender, EventArgs e)
            {
                this.MasterPageFile = "~/Example.master";
            }
        4 获取母版页上的控件
            运行时,母版页和内容页合并了,因此可以访问母版页上的控件。可以使用FindControl方法来定位母版页上的控件。如果要访问 ContentPlaceHolder中的控件,需要先获取ContentPlaceHolder控件的引用,然后再调用其FindControl方法。也就是说需要两次调用FindControl方法。
            另外一种方法是在母版页中公开属性来进行访问。
        5 嵌套母版页

            子母版页也包含文件扩展名 .master。子母版页通常会包含一些内容控件,这些控件将映射到父母版页上的内容占位符。就这方面而言,子母版页的布局方式与所有内容页类似。但是,子母版页还有自已的内容占位符,可用于显示其子页提供的内容。

            <%@ Master Language="C#" MasterPageFile="~/Parent.master"%> <asp:Content id="Content1" ContentPlaceholderID="MainContent" runat="server"> <asp:panel runat="server" id="panelMain" backcolor="lightyellow"> <h2>Child master</h2> <asp:panel runat="server" id="panel1" backcolor="lightblue"> <p>This is child master content.</p> <asp:ContentPlaceHolder ID="ChildContent1" runat="server" /> </asp:panel> <asp:panel runat="server" id="panel2" backcolor="pink"> <p>This is child master content.</p> <asp:ContentPlaceHolder ID="ChildContent2" runat="server" /> </asp:panel> <br /> </asp:panel> </asp:Content> 

你可能感兴趣的:(ASP.net)