标签:
母版页是ASP.NET提供的一种重用技术,使用母版页可以为应用程序中的页面创建一致的布局。单个母版页可以为应用程序中的所有页(或一组页)定义所需的外观和标准行为。然后可以创建包含要显示内容的各个内容页。当用户请求内容页时,这些内容页与母版页合并,以便将母版页的布局与内容页的内容组合在一起输出。
母版页为具有扩展名.master的ASP.NET文件,它具有可以包括静态文本、HTML元素和服务器控件的预定义布局。母版页由特殊的@Master指令识别,该指令替换了用于普通.aspx页的@Page指令。
除在所有页上显示的静态文本和控件外,母版页还包括一个或多个ContentPlaceHolder控件。ContentPlaceHolder控件称为占位符控件,这些占位符控件定义可替换内容出现的区域。可替换内容是在内容页中定义的,所谓内容页就是绑定到特定母版页的ASP.NET页(.aspx文件以及可选的代码隐藏文件),通过创建各个内容页来定义母版页的占位符控件的内容,从而实现页面的内容设计。
在内容页的@Page指令中通过使用MasterPageFile属性来指向要使用的母版页,从而建立内容页和母版页的绑定。在内容页中,通过添加Content控件并将这些控件映射到母版页上的ContentPlaceHolder控件来创建内容。
母版页的优点
1.使用母版页可以集中处理页的通用功能,以便可以只在一个位置上进行更新。
2.使用母版页可以方便地创建一组控件和代码,并将结果应用于一组页。
3.通过允许控制占位符控件的呈现方式,母版页可以在细节上控制最终页的布局。
4.母版页提供一个对象模型,使用该对象模型可以从各个内容页自定义母版页。
母版页的处理步骤
1. 用户通过键入内容页的URL来请求某页。
2. 获取该页后,读取@Page指令。如果该指令引用一个母版页,则也读取该母版页。如果这是第一次请求这两个页,则两个页都要进行编译。
3. 包含更新内容的母版页合并到内容页的控件树中。
4. 各个Content控件的内容合并到母版页中相应的ContentPlaceHolder控件中。
5. 浏览器中呈现得到的合并页。
在母版页中放入网页的方法
第一种是直接在母版页中生成新网页。
第二种是在建立新网页时选择母版页。
2. 在母版页放入存在的网页。一般通过手工加入或修改一些代码来使存在的网页嵌入到母版页中。
使用实例
新建母版页MasterPage.Master,页面设计如下:
1 <div align="Center"> 2 <table Width="900" Height="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="yellow"> 3 <tr> 4 <td colspan="2" Width="900" Height="40" align="right" valign="top" bgcolor="pink"> 5 </td> 6 </tr> 7 <tr> 8 <td Width="400"bgcolor="green" > 9 <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"/> 10 </td> 11 <td Width="500" bgcolor="blue"> 12 <asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server" /> 13 </td> 14 </tr> 15 <tr> 16 <td colspan="2" bgcolor="black" Height="20"></td> 17 </tr> 18 </table> 19 </div>
在母版页中放入新建网页WebForm1.aspx,添加页面导航,代码如下:
1 <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master" 2 AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" 3 Inherits="WebApplication2.WebForm1" %> 4 <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 5 </asp:Content> 6 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 7 <a href="WebForm2.aspx">主页</a> 8 </asp:Content> 9 <asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder2" runat="server"> 10 <a href="WebForm3.aspx">主题</a> 11 </asp:Content>
添加页面WebForm2.aspx和WebForm3.aspx。
标签:
原文地址:http://www.cnblogs.com/spilledlight/p/4857895.html