【php精品源码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了php精品源码-【精品】第12章母版页 - 大学课件的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
第 11 章母版页 为了给访问者一致的感受,每个网站都需要具有统一的风格和布局。
在 ASP 技术盛行时期,开发人员习惯于使用包含页面的方法,即使用#include 命令,将事先设计好的页面包含到主页面中。
纵览以上两种方法,虽然页面包含和用户控件都能够实现使网站一致性的要求,然而,二者都不是开发技术的内建方法。
也就是说,需要开发人员自己套用,才能够享受利用模板设计网页的好处。
ASP.NET 2.0 技术提出一个新功能一一母版页。
设计母版页的目的,就是要在 ASP.NET 2.0 技术中,从内部建立支持网页模板的功能,以实现网站一致性要求。
11.1 母版页概述 ASP.NET 2.0 对提供的母版页功能,为提高工作效率,降低开发和维护强度,提供了有力支持。
11.1.1 母版页基础知识 在 ASP.NET 2.0 对中,可以将 Web 应用程序中的公用元素,整合到母版页中。
可以将母版页看作是页面模板,而且是一种具有多项高级功能的页面模板。
母版页能够为 ASP.NET 应用程序创建统一的用户界面和样式,这是母版页的核心功能。
在实现网站一致性的过程中,必须包含两种文件:一种是母版页,另一种是内容页。
母版页后缀名是.master,其封装页面中的公共元素。
内容页实际是普通的.aspx 文件,它包含除母版页之外的其他非公共内容。
在运行过程中,ASP.NET 引擎将两种页面内容合并执行,最后将结果发给客户端浏览器。
常见母版页代码结构如下所示。
lt Master LanguagequotCquot AutoEventWireupquottruequot CodeFilequotMasterPage.master.csquotInheritsquotMasterPagequot gtltDOCTYPE html PUBLIC quot-//W3C//DTD XHTML 1.0 Transitional//ENquotquothttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdquotgtlthtml xmlnsquothttp://www.w3.org/1999/xhtmlquot gtlthead runatquotserverquotgt lttitlegt无标题页lt/titlegtlt/headgtltbodygt ltform idquotform1quot runatquotserverquotgt ltdivgt ltasp:contentplaceholder idquotnrquot runatquotserverquotgt lt/asp:contentplaceholdergt lt/divgt lt/formgtlt/bodygtlt/htmlgt 母版页与.aspx 文件结构之间的差异: 一是母版页的扩展名是.master,所有以 master 为后缀的文件都是母版页,这一点与普通.aspx 文件不同。
客户端浏览器可以向服务器发出请求,要求访问.aspx 文件,但是,如果请求的是母版页,则不能执行访问。
客户端可以访问内容页,通过内容页对母版页的绑定,才能够间接访问母版页。
二是普通.aspx 文件的代码头声明是<%@Pape%>,而母版页文件的代码头声明与此不同,它必须声明为<%@Master%>,即将 Page 改换为 Mater。
除此之外,母版页与普通.aspx 文件在代码结构方面基本没有差异。
三是母版页中可以包括一个 或 者 多 个 ContentPlaceHolder 控 件 , 而 在 普 通 .aspx 文 件 中 是 不 包 含 该 控 件 的 。
ContentPlaceHolder 控件起到一个占位符的作用,能够在母版页中标识出某个区域,该区域将内容页中的特定代码代替。
以上介绍了母版页与.aspx 文件结构之间的差异。
内容页与母版页关系紧密,下面简单介绍一下内容页。
内容页与普通.aspx 文件的结构区别,常见内容页的代码结构如下所示。
lt Page LanguagequotCquot MasterPageFilequot/MasterPage.masterquot AutoEventWireupquottruequotCodeFilequotCreateUserWizard.aspx.csquot InheritsquotAnonymous_CreateUserWizardquot TitlequotUntitledPagequot gtltasp:Content IDquotContent1quot ContentPlaceHolderIDquotnrquot RunatquotServerquotgt ……lt/asp:Contentgt 由以上代码可知,内容页的代码主要分为两个部分;代码头声明和 Content 控件。
内容页的代码头声明与普通.aspx 文件很相似,只是增加了属性 MasterPageFile 和 Title 设置。
属性 MasterPapeFile 用于设置该内容页所绑定的母版页的路径,属性 Title 用于设置页面 title属性值。
另外,在内容页中,还可以包括一个或者多个 Content 控件。
页面中所有非公共内容都必须包含在 Content 控作中。
每一个 Content 控件通过属性 ContentPlaceHolderID 与母版页中的 CotentPlaceHolder 控件相连接。
通过以上设置,就可以实现母版页与内容页的绑定。
ASP.NET2.0 提供的母版页功能,允许开发人员创建真正意义上的页面模板。
整个应用过程,可总结为“两个包含,一个结合”。
“两个包含’是指将页面内容分为公共部分和非公共部分,并且二者被分别包含在两个文件中。
公共部分被包含在母版页中,非公共部分被包含在内容页中。
开发人员可以根据所定义的公共内容,使用母版页来封装静态文本、HTML 元素以及 ASP.NET 服务器控件等多种 Web 元素。
需要注意的是,即使公共内容处于页面中的不同位置,仍然可以使用母版页功能将其内容整合到一个母版页文件中。
对于页面内容中的非公共部分, 只需在母版页中使用一个或者多个 ContentPlaceHolder 控件来占位即可。
ContentPlaceHolder 控件主要用于在母版页中,作为代替非公共部分的占位符号出现,而具体内容则被放置在内容页中。
内容页的创建相对简单,只需将非公共内容包含在不同的 Content 控件中即可。
“一个结合”是指通过控件应用以及属性设置等行为,将母版页和内容页有机结合。
例如 , 母 版 页 中 ContentPlaceHolder 的 ID 属 性 必 须 与 内 容 页 中 Content 控 件 的ContentPlaceHolderID 属性绑定。
11.1.2 母版页运行机制 单独的母版页是不能被用户所访问的。
没有内容页支持,母版页仅仅是一个页面模板,没有更多的实用价值。
同样道理,单独的内容页没有母版页支持,也不能够应用。
由此可见,母版页与内容页关系密切,是不可分割的两个部分。
只有同时正确创建和使用母版页以及内容页,才能发挥它们的强大功能。
首先,从代码结构方面,母版页内容以页面公共部分为主,包括代码头、ContentPlaceHolder 控件以及其他常见 Web 元素。
内容页主要包含页面非公共部分,包括两个部分:代码头和 Content 控件。
Content 控件中包含着页面非公共内容。
图 11-1 所示显示了母版页和内容页的控件对应关系。
ltasp:Content ContentPlaceHolderIDquotnrquot ltasp:contentplaceholder idquotnrquot RunatquotServerquotgt runatquotserverquotgt …… lt/asp:contentplaceholdergt lt/asp:Contentgt 图 11-1 在控件应用方面,母版页和内容页有着严格对应关系。
母版页中包含多少个ContentPlaceHolder 控件,那么内容页中也必须设置与其相同数目的 Content 控件。
图 11-1说明的是母版页和内容页之间的控件对应关系。
母版页中包含一个 ContentPlaceHolder 控件cph1。
内容页则必须对应一个 Content 控件,并且 Content 控件的属性 ContentPlaceHolderID的设置必须与 cphl 相对应。
如果将母版页的 ContentPlaceHolder 控件看作是页面中的占位符,那么占位符所对应的具体内容就包含在内容页的 Content 控件中。
二者的对应关系是通过设置 Content 控件中的 ContentPlaceHolderID 属性来完成的。
在实际应用中, 为了给整个网站创建一致的风格和样式, 一个母版页可能被多个内容页绑定。
只有正确处理母
上一篇:
【精品】8多线程
下一篇:
关于听觉掩蔽的语音增强算法及DSP实现