Master Pages母版页(一夫多妻制)综述总结

Master Pages母版页(一夫多妻制)综述总结

一、母版页的优点

1、能有效达到网站中所有页面的一致性效果。

2、在设计阶段就能预览网页版面。

3、维护网页版面容易

4、可依用户个人喜好而弹性变换。

微软官方对于Master Pages的优点概述:

1、集中页面的通用功能,让您在一个位置就能更新。

2、轻松创建一组控件和程序代码,并且将结果套用至一组页面。如,可以使用母版页上的控件,创建套用至所有页面的菜单。

3、控制预留位置控件的呈现方式,可以更细腻地完稿页面的配置样式。

4、对象模型,让您可以从个别内容页面自定义母版页。

二、Master Pages的创建

1、在项目中加入母版页

 

2   先 删除界面中默认的ContentPlaceHolder,母版页布局完成后再加入ContentPlaceHolder  <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

        </asp:ContentPlaceHolder>

 

3、布局完成,在标准控件中重新加入ContentPlaceHolder

 

 

三.使用Master Pages创建内容页的常见方法

方法一:在Master Pages文件中选择添加内容

  MasterPage.Master上按鼠标右键选择【添加内容页】(见下图)

 

方法二:在添加新的Web Form中指定母版页。注意要将【选择母版页】打勾。

方法三:直接后台更改代码。

1、   去掉下面代码

<html xmlns="http://www.w3.org/1999/xhtml" ></html>

<head runat="server">

    <title>无标题页</title>

</head>

<body>

    <form id="form1" runat="server">

     </form>

</body>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

2、加入MasterPageFile="~/StudentManage.MasterTitle="学生管理系统管理员主页"

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

</asp:Content>

 

<%@ Page Language="C#" MasterPageFile="~/StudentManage.Master" AutoEventWireup="true" CodeBehind="adminmainpage.aspx.cs" Inherits="StudentsManagement.Admin.adminmainpage" Title="学生管理系统管理员" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

</asp:Content>运行查看效果图如下:

 

四、Master Pages的嵌套使用

1、创建最上层母版页ParentMaster

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Parent.master.cs" Inherits="MasterpagesTest.Parent" %>

<!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>

    <h1> 这是第一层,即最外面的母版页Parent.Master !!</h1>

        <asp:ContentPlaceHolder id="MainContent" runat="server">

        </asp:ContentPlaceHolder>

    </div>

    </form>

</body>

</html>

 

2、创建第二层母版页Child.Master:

 

<%@ Master Language="C#" AutoEventWireup="true" MasterPageFile="~/Parent.Master" CodeBehind="Child.master.cs" Inherits="MasterpagesTest.Child" %>

 

        <asp:Content id="Content1" ContentPlaceHolderID="MainContent" runat="server">

            <h2> 这是第二层,即次外面的母版页Child.Master !!</h2>

                <asp:ContentPlaceHolder ID="ChildContent1" runat="server"/>

        </asp:Content>

 

3、创建最终内容页:

<%@ Page Language="C#" MasterPageFile="~/Child.Master" AutoEventWireup="true" CodeBehind="Content.aspx.cs" Inherits="MasterpagesTest.Content" Title="无标题页" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ChildContent1" runat="server">

最终内容页Content.aspx!!

</asp:Content>

运行结果如下:

嵌套母版页的缺点:VS2005 IDE不支持嵌套Master Pages的可视化设计,即一旦使用嵌套母版页,除了最上层母版页可视化外,其底下的母版页一直到内容页都会被强制限定在HTML标签模式下,而无法切换到设计模式。这样在设计阶段会很不方便,万一发生错误,排错更是困难。这算是VS2005IDE不人性化的缺点。

以上嵌套母版页刚开始练习运行出错属正常现象,多练几次就可!

五、Master.Page母版页作用范围设置

1、页面层生效:

<%@ Master Language="C#" MasterPageFile="~/Parent.Master"%>

2、应用程序层生效:

     <pages masterPageFile="~/Parent.Master"/>

内容页:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Content.aspx.cs" Inherits="MasterpagesTest.Content" Title="无标题页" %>

<asp:Content id="Content1" contentplaceholderid="MainContent" runat="server">

       <p>  最终内容页Content.aspx!!</p>

</asp:Content>

3、文件夹层生效:

文件夹层和应用程序层差不多,而它是在个别目录中声明Web.config,这样该目录会优先套用文件夹层所声明的<pages masterPageFile="~/Parent.Master"/>

 

六、如何获取母版页相关对象

此用FindControl即可,

如:  TreeView myTreeView = (TreeView)Master.FindControl("TreeView1");

            if (myTreeView != null)

            {

                for (int i = 0; i < myTreeView.Nodes[0].ChildNodes.Count; i++)

                { txtMsg.Text += myTreeView.Nodes[0].ChildNodes[i].Text + "<br/>"; }

            }

具体上百度找,此不再赘述。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值