当前位置:首页>网络学院>程序开发>ASP.NET教程>文章内容

asp.net 2.0教程 母版页

[ 来源:http://www.it55.com | 作者: | 时间:2007-10-08 | 收藏 | 推荐 ] 【

尊重作者,请保留 www.it55.com 链接字样。

过完五一了,一身的臭汗,想洗个澡先。但最后还是决定先把今天的课程写了再作其他事情。
我们做网站的时候经常会出现这种情况:每个页面都要有头部和尾部,而这些头部或尾部大多数时间都是一模一样的,重复性的劳动让我们显得很无奈。asp程序员通过include来解决这个问题,asp.net 1.X程序员通过自定义控件来实现公共部分的重用。但这些方法都有无法回避的弊端,asp.net提供给我们了另一种新的解决方案,那就是母版技术。
1、简单母版应用
在当前项目上右键单击>>>添加新项


在弹出的“添加新项”对话框的模板选项中,选择母版页,点击“添加”

vs已经将一个简单的母版页添加到当前项目中。
对母版页面进行简单修改,最终代码如下:

<%@ 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 runat="server">
    <title>简单母版页</title>
</head>
<body>
    <form id="form1" runat="server">
    <p>我是母版页内容</p>
    <div>
        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
        </asp:contentplaceholder>
    </div>
    </form>
</body>
</html>

大家注意看代码的蓝色部分。

接下来我们向当前项目中添加web窗体文件:
在当前项目上右键单击>>>添加新项。
在弹出的“添加新项”对话框的模板选项中,选择web窗体,并同时选中“选择母版页”,点击“添加”:

系统接着会弹出“选择母版页”配置框,选择对应项目下的对应母版,单击“确定”:

系统便自动生成内容页,代码经简单修改,代码如下:

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
我是内容页部分。
</asp:Content>

大家注意看代码的蓝色部分。
运行之后,大家会看到:

当我们请求内容页Default.aspx时,系统自动将母版文件内容应用至内容页中,并把最终处理结果展示给我们。asp.net 2.0究竟是怎么实现母版页和内容页之间的整合的呢?下面是一个简单的过程描述:
用户通过内容页的URl请求这个内容页面 >>> 系统获取该内容页后,通过读取@page指令中的MasterPageFile属性获取对应的母版页 >>> 系统将母版页合并到内容页的控件树中。 >>> 系统根据母版页中的"contentplaceholder"控件的ID和内容页Content控件的"ContentPlaceHolderID"属性值,将各个Content控件的内容合并到母版页中相应的ContentPlaceHolder控件中 >>> 系统将合并之后的结果页面发送给客户端。

2、嵌套母版应用
嵌套母版页其实是母版页功能的高级应用,就是在大的母版页中包含一个小的母版页。这里需要注意的是,不管母版页有无嵌套、或者有几个嵌套,整个页面构架中必须至少包含一个内容页,因为母版页本身是不能被用户访问到的。
以下是嵌套母版页应用的简略代码:
大母版页BigMasterPage.master:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MainMasterPage.master.cs" Inherits="MainMasterPage" %>

<!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 runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>大母版页内容</div>
    <div>
        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
        </asp:contentplaceholder>
    </div>

(编辑:IT资讯之家 www.it55.com

返回顶部
共3页: 上一页 1 [2] [3] 下一页  

网友评论

[以下评论为网友观点,不代表本站。请自觉遵守互联网相关政策法规,所有连带责任均有评论者自负。]
[不超过250字]