当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ASP.NET 2.0 中的创建母版页

ASP.NET
asp.net GridView控件中模板列CheckBox全选、反选、取消
asp.net GridView 删除时弹出确认对话框(包括内容提示)
asp.net DropDownList 三级联动下拉菜单实现代码
asp DataTable添加列和行的三种方法
Asp.net 页面调用javascript变量的值
asp.net 长文章通过设定的行数分页
asp.net 定时间点执行任务的简易解决办法
asp.net 页面延时五秒,跳转到另外的页面
asp.net 动态输出透明gif图片
asp.net DataList与Repeater用法区别
asp.net Javascript获取CheckBoxList的value
asp.net程序在调式和发布之间图片路径问题的解决方法
asp.net下生成英文字符数字验证码的代码
asp.net 页面版文本框智能提示JSCode (升级版)
ASP.NET URL伪静态重写实现方法
ASP.NET 2.0 中Forms安全认证
asp.net 动态添加多个用户控件
asp.net Repeater显示父子表数据,无闪烁
asp.net 无法获取的内部内容,因为该内容不是文本 的解决方法
asp.net GridView排序简单实现

ASP.NET 2.0 中的创建母版页


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-11   浏览: 57 ::
收藏到网摘: n/a

  虽然母版页和内容页功能强大,但是其创建和应用过程并不复杂。本节和下一节将以创建如图1所示示例为例,向读者详细介绍,使用Visual Stuido 2005创建母版页和内容页的方法以及相关知识。本节的重点是创建母版页的方法。
  母版页中包含的是页面公共部分,即网页模板。因此,在创建示例之前,必须判断哪些内容是页面公共部分,这就需要从分析页面结构开始。图1所示显示的是一个页面截图。在下文中,暂称该页面名为Index.aspx,并且假设其为某网站中的一页。通过分析可知,该页面的结构如图5所示。
按此在新窗口浏览图片
图5 页面结构图
  页面Index.aspx由4个部分组成:页头、页尾、内容1和内容2。其中页头和页尾是Index.aspx所在网站中页面的公共部分,网站中许多页面都包含相同的页头和页尾。内容1和内容2是页面的非公共部分,是Index.aspx页面所独有的。结合母版页和内容页的有关知识可知,如果使用母版页和内容页来创建页面Index.aspx,那么必须创建一个母版页MasterPage.master和一个内容页Index.aspx。其中母版页包含页头和页尾等内容,内容页中则包含内容1和内容2。
  使用Visual Studio 2005创建一个普通Web站点,然后,在站点根目录下创建一个名为MasterPage.master的母版页。由于这是一个添加新文件的过程,因此,单击“网站”命令菜单中的“添加新项..”选项,可以打开如图6所示的窗口。
按此在新窗口浏览图片
图6 添加母版页
  由于此例创建的是母版页,因此,需要选择母版页图标,并且设置文件名为MasterPage.master。需要注意的是,该窗口中还有一个复选框项“将代码放在单独的文件中”。默认情况下,该复选框处于选中状态。表示Visual Studio 2005将会为MasterPage.master文件应用代码隐藏模型,即在创建MasterPage.master文件的基础上,自动创建一个与该文件相关的MasterPage.master.cs文件。如果不选中该项,那么只会创建一个MasterPage.master文件而已。建议读者选取该项。
  在创建MasterPage.master文件之后,接着就可以开始编辑该文件了。根据前文说明,母版页中只包含页面公共部分,因此,MasterPage.master中主要包含的是页头和页尾的代码。具体源代码如下所示:
母版页MasterPage.master文件源代码

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<link href="css/myfreetemplates.css" rel="stylesheet" type="text/css" />
</head>
<body background="http://www.68design.net/art/images/pixi_lime.gif" leftmargin="0" topmargin="0">
<form id="form1" runat="server">
<div align="center">
<table width="763" height="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td width="763" height="86" align="right" valign="top">
<img src="http://www.68design.net/art/images/topic.gif"></td>
</tr>
<tr>
<td width="763" height="53" align="right" valign="bottom" background="/upload/tech/20091011/20091011143316_c86a7ee3d8ef0b551ed58e354a836f2b.gif"></td>
</tr>
<tr>
<td width="763" height="22" align="right" valign="top"><img src="http://www.68design.net/art/images/toppic2.gif" width="763" height="22"></td>
</tr>
<tr>
<td width="763" valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="244" valign="top">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"></asp:ContentPlaceHolder>
</td>
<td valign="top" align="left">
<asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server"></asp:ContentPlaceHolder>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="763" height="1" background="http://www.68design.net/art/images/pixi_lime.gif"><img src="http://www.68design.net/art/images/pixi_lime.gif" width="1" height="1"></td>
</tr>
<tr>
<td width="763" height="35" align="center" class="baseline">©Copyright Study.Com 2006</td>
</tr>
</table>
</div>
</form>
</body></html>

  以上是母版页MasterPage.master的源代码,与普通的.aspx源代码非常相似,例如,包括<html>、<body>、<form>等Web元素,但是,与普通页面还是存在差异。差异主要有两处(粗体代码所示)。差异一是代码头不同,母版页使用的是Master,而普通.aspx文件使用的是Page。除此之外,二者在代码头方面是相同的。差异二是母版页中声明了控件ContentPlaceHolder,而在普通.aspx文件中是不允许使用该控件的。在MasterPage.master的源代码中,共声明了两个ContentPlaceHolder控件,用于在页面模板中为内容1和内容2占位。ContentPlaceHolder控件本身并不包含具体内容设置,仅是一个控件声明。
  图7所示,显示了MasterPage.master文件的设计时视图。
按此在新窗口浏览图片
图7 母版页设计时视图
  使用Visual Studio 2005可以对母版页进行编辑,并且它完全支持“所见即所得”功能。无论是在代码模式下,还是设计模式下,使用Visual Studio 2005编辑母版页的方法,与编辑普通.aspx文件是相同的。图中两个矩形框表示ContentPlaceHolder控件。开发人员可以直接在矩形框中添加内容,所设置内容的代码将包含在ContentPlaceHolder控件声明代码中。需要注意的是,这种方法是,不规范的,因此,不推荐使用这种做法。