读书人

5.1创设母版本页

发布时间: 2012-10-29 10:03:53 作者: rapoo

5.1创建母版本页
创建母版本页

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

<!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">
<style type="text/css">
html
{
background-color: Silver;
font: 14px Arial,Sans-Serif;
}
.content
{
margin: auto;
width: 700px;
background-color: White;
border: Solid 1px black;
}
.leftColumn
{
float: left;
padding: 5px;
width: 200px;
border-right: Solid 1px black;
height: 700px;
}
.rightColumn
{
float: left;
padding: 5px;
}
.clear
{
clear: both;
}
</style>
<title>Simple master</title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div runat="server">
</asp:ContentPlaceHolder>
</div>
<div runat="server">
</asp:ContentPlaceHolder>
</div>
<br />
</div>
</form>
</body>
</html>

----------------------------------------

<%@ Page Title="" Language="C#" MasterPageFile="~/SimpleMaster.master" %>

<script runat="server">

</script>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
SimpleContent
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
Content in the first column
<br />Content in the first column
<br />Content in the first column
<br />Content in the first column
<br />Content in the first column
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
Content in the Second column
<br />Content in the Second column
<br />Content in the Second column
<br />Content in the Second column
<br />Content in the Second column
</asp:Content>

嵌套母版本

<%@ Master Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"></script><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <style type="text/css">        html        {            background-color: DarkGreen;            font: 14px Georgia,Serif;        }        .content        {            width: 700px;            margin: auto;            border-style: solid;            background-color: White;            padding: 10px;        }        .tabstrip        {            padding: 3px;            border-top: solid 1px black;            border-bottom: solid 1px black;        }        .tabstrip a        {            font: 14px Arial;            color: DarkGreen;            text-decoration: none;        }        .column        {            float: left;            padding: 10px;            border-right: solid 1px black;        }        .rightColumn        {            float: left;            padding: 10px;        }        .clear        {            clear: both;        }    </style>    <title>My Site Master</title></head><body>    <form id="form1" runat="server">    <div ImageUrl="~/Images/1.gif" AlternateText="Website Logo" runat="server" />        <div Text="Products" NavigateUrl="~/Products.aspx" runat="server" />                         <asp:HyperLink ID="lnkServices" Text="Services" NavigateUrl="~/Services.aspx" runat="server" />        </div>        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">        </asp:ContentPlaceHolder>        <br />        Copyright ©2010 by Danny.    </div>    </form></body></html>



SectionProducts.master
<%@ Master Language="C#" MasterPageFile="~/MySite.master" %><script runat="server"></script><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">    <div runat="server" />    </div>    <div runat="server" />    </div>    <div runat="server" />    </div></asp:Content>


SectionServices.master
<%@ Master Language="C#" MasterPageFile="~/MySite.master" %><script runat="server"></script><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">    <div runat="server" />    </div>    <div runat="server" />    </div></asp:Content>


Products.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/SectionProducts.master" %><script runat="server"></script><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHoder1" runat="Server">    Products,Products,Products    <br />    Products,Products,Products    <br />    Products,Products,Products    <br />    Products,Products,Products    <br />    Products,Products,Products</asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHoder2" runat="Server">    Products,Products,Products 2    <br />    Products,Products,Products    <br />    Products,Products,Products    <br />    Products,Products,Products    <br />    Products,Products,Products</asp:Content><asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHoder3" runat="Server">    Products,Products,Products 3    <br />    Products,Products,Products    <br />    Products,Products,Products    <br />    Products,Products,Products    <br />    Products,Products,Products</asp:Content>


Services.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/SectionServices.master" %><script runat="server"></script><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHoder1" runat="Server">    Services,Services,Services 1    <br />    Services,Services,Services    <br />    Services,Services,Services    <br />    Services,Services,Services    <br />    Services,Services,Services</asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHoder2" runat="Server">    Services,Services,Services 2    <br />    Services,Services,Services    <br />    Services,Services,Services    <br />    Services,Services,Services    <br />    Services,Services,Services</asp:Content>


在母版页中使用图片和超链接
在母版页中使用相对URL必须十分小心。
使用ASP.net控件,相对URL会解析为相对于母版本的URL。
母版中添加Asp.net Image控件
<asp:Image ImageUrl="Picture.gif" run="server"/>
母版在MasterPages的文件夹中,则URL会解析为:/MasterPages/Pictrue.gif
即使内容页在一个完全不同的文件夹中,ImageUrl属性仍然会解析为相对于母版页的URL而不是相对于内容页的URL。
使用HTML标签,情况完全不同<a><img>
在母版中添加<img src="picture.gif"/>
内容页在ContentPages文件夹中则会解析为: /ContentPages/picture.gif
解决方法:
1、用ASP.Net控件替换使用相对URL的HTML元素
2、用绝对URL来替换相对URL 比较僵硬
3、在母版中使用方法来重新解析相对URL。 MasterUrl()
ImageMaster.master [in MasterPages文件夹]
 <%@ Master Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"></script><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title>    <asp:ContentPlaceHolder ID="head" runat="server">    </asp:ContentPlaceHolder></head><body>    <form id="form1" runat="server">    <div>        <img src='<%=Page.ResolveUrl("~/MasterPages/Logo.gif") %>' alt="5.1创设母版本页" />        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">        </asp:ContentPlaceHolder>    </div>    </form></body></html>


ImageContent [在根目录下]
 <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPages/ImageMaster.master" %><script runat="server"></script><asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">    Head</asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">    <h1>        Image Content</h1></asp:Content>


在Web配置文件中注册母版页
<configuration>
<system.web>
<pages masterPageFile="~/SimpleMaster.master"/>
</system.web>
</configuration>

母版页只能应用到内容页,如果一个页面没有Content控件,只是普通ASP.net页面的话,母版页被忽略。

2011-4-28 10:24 danny

读书人网 >编程

热点推荐