目 录 前言··· 1 内容来自论文无忧网 www.paper51.com 1 MasterPage的组成··· 1 内容来自论文无忧网 www.paper51.com 1.1 MasterPage的组成··· 1 paper51.com 1.2 内容页的组成··· 2 http://www.paper51.com 2 MasterPage在ASP.NET 2.0中的运行机制··· 2 内容来自www.paper51.com
3 访问MasterPage成员··· 3 内容来自论文无忧网 www.paper51.com 3.1 创建对MasterPage的强类型引用··· 4 内容来自www.paper51.com 3.2 引用MasterPage属性··· 4 copyright paper51.com 3.3获取MasterPage控件上的值··· 4 copyright paper51.com 4 MasterPage中几种常见问题的处理方法··· 4 内容来自论文无忧网 www.paper51.com
4.1 ASP.NET 2.0配合MasterPage的优化CSS· 4 http://www.paper51.com 4.2 解决MasterPage中添加JavaScript路径问题··· 5 内容来自论文无忧网 www.paper51.com 4.3 MasterPage中图片路径的解决方法··· 5 内容来自www.paper51.com 5 MasterPage在新闻发布系统中的应用··· 6 内容来自论文无忧网 www.paper51.com 5.1 创建MasterPage.master文件··· 6 http://www.paper51.com
5.2 内容页引用MasterPage页面··· 7 paper51.com 5.3 内容页中编辑信息··· 8 copyright paper51.com
小结··· 8 内容来自www.paper51.com 参考文献··· 9 http://www.paper51.com 致谢 http://www.paper51.com 引 言 copyright paper51.com MasterPage类是ASP.NET 2.0中的新类,是一种文件扩展名为 .master 的特殊网页,它使程序员可以为网站或应用程序中的网页创建一致外观和布局的内容页。当用户请求内容页时,这些内容页将和MasterPage的布局组合在一起输出[1]。但是MasterPage不能直接在浏览器中查看。利用MasterPage,您可以创建单个网页模板并在应用程序中将该模板用作多个网页的基础,这样就无需从头创建所有新网页。 http://www.paper51.com 在新闻发布系统的开发过程中,为了统一风格,不同的页面都会配有相同的页头和页尾,如果每个页面都进行分开编辑,工作量非常大,所以具体开发中我们应用了MasterPage类,这给我们带来了诸多的方便。具体是在前台和后台都建立了一个有页头和页尾的母版页,每个页面中不同的内容留作内容页进行编辑。 内容来自www.paper51.com 1 MasterPage的组成 copyright paper51.com MasterPage我们也叫母版页,实际由两部分组成,即MasterPage(母版页)本身与一个或多个内容页。 http://www.paper51.com 1.1MasterPage的组成 内容来自www.paper51.com MasterPage定义公用布局和导航栏,以及附加到该页的所有内容网页的默认公用内容。可以包括静态文本、HTML 元素和服务器控件。MasterPage中利用ContentPlaceHolder控件来作为非公共部分的占位符号出现[2]。其格式为: 内容来自www.paper51.com
MasterPage(.master文件) 内容来自论文无忧网 www.paper51.com <asp:ContentPlaceHolder ID="a1"> 内容来自论文无忧网 www.paper51.com </asp:ContentPlaceHolder> 内容来自论文无忧网 www.paper51.com @Master指令用于定义MasterPage的专用属性,供ASP.NET页分析器和编译器使用,该指令的语法格式如下: copyright paper51.com <%@Master attribute=”value” [attribute=”value”...]%> 内容来自论文无忧网 www.paper51.com
只能在MasterPage中使用@master指令,而且每个MasterPage中只能包含一条@Master指令。 内容来自论文无忧网 www.paper51.com 对于单文件MasterPage,所使用的@Master指令如下: http://www.paper51.com <%@Master Language=”C#”%> 内容来自论文无忧网 www.paper51.com 对于使用隐藏代码的MasterPage,可以在@Master指令中指定一个代码隐藏文件的名称并将一个类名分配给MasterPage。例如: paper51.com
<%@Master Language=”C#” CodeFile=”MasterPage.master.c#” Inherits=”MasterPage”%> paper51.com 除@Master指令外,MasterPage还包含所有顶级HTML元素,例如html、head、form等,也可以使用任何的HTML元素和ASP.NET元素。MasterPage还包括一个或多个内容占位符(ContentPlaceHolder)控件。 copyright paper51.com
1.2内容页的组成 内容来自论文无忧网 www.paper51.com 如前面提到的,MasterPage上可以包含一些ContentPlaceHolder控件作为占位符,这些占位符控件定义哪些区域为可替换内容出现的区域。内容页是常规 .aspx 文件扩展名的 ASP.NET 页组成的。它将非公共内容包含在不同的Content控件中[2]。即使公共内容处于页面中的不同位置,仍然可以使用MasterPage功能能将其内容融合到一个MasterPage文件中,从而创建一个完整页的网页。 内容来自www.paper51.com 在一个内容页中,包含一条 @page 指令并通过该指令将MaterPageFile属性设置为指向要使用的MasterPage,起到识别内容页并附加到的MasterPage的作用。例如,某个内容页包含下面的@Page指令,通过设置MasterPageFile属性将该内容页绑定到Master1.master页。代码如下: paper51.com <%@Page language=”C#” MasterPageFile=”~/MasterPage/Master1.master” Title=”内容页标题”%> copyright paper51.com Content控件是内容页和控件的容器[2]。它仅与定义相应的ContentPlaceHolder控件的MasterPage一起使用,内容直接合并到相应的ContentPlaceHolde中。Content控件通过ContentPlaceHoldeID属性与一个ContentPlaceHolde控件关联。在ASP.NET页中所执行的所有任务都可以在内容页总执行。内容页不包含html、head和form这些顶级的HTML元素。内容页中Content控件的ContentPlaceHolderID属性必须与MasterPage中ContentPlaceHolder控件的ID属性一致。 内容来自www.paper51.com
@Page指令将内容页绑定到特定的MasterPage中,并为合并的内容指定标题。其格式为: 内容来自论文无忧网 www.paper51.com 内容页(.aspx文件) 内容来自www.paper51.com <asp:Content ContentPlaceHolderID="a1"> http://www.paper51.com …… copyright paper51.com </asp:content> 内容来自www.paper51.com |