ASP.NET中母版页作用

一是提高代码的复用(把相同的代码抽出来)

二是使整个网站保持一致的风格和样式。

母版页存在就一定要有内容页的存在,否则母版页的存在就没有了意义。

.master

一、添加母版页

在新建的母版页中你会发现自动生成了两个ContentPlaceHolder控件

一个在head区, ID=“head”;

一个在body区,默认ID=“ContentPlaceHolder1”

--这是两个占位符控件,文本位置预留。

二级母版页

母版页是可以嵌套的,即在原母版页的基础上再建立母版页。

嵌套的母版页不会自动生成ContentPlaceHolder 控件,需要手动写入

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

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link href="css/css1.css" rel="stylesheet" /> <asp:ContentPlaceHolder ID="head" runat="server"><%--文本位置预留--%>
</asp:ContentPlaceHolder> </head>
<body>
<form id="form1" runat="server">
<div> <div class="header">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <%--标题栏布局--%>
</div> <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"><%--文本位置预留--%>
</asp:ContentPlaceHolder> <div class="footer"></div> <%-- 结尾栏布局--%> </div> <script src="<%=abc() %>"></script> <%--引用外部的js,(在 form 内)--%>
</form>
</body>
</html>

一级母版页

<%@ Master Language="C#" MasterPageFile="~/MP1.master" AutoEventWireup="true" CodeFile="MP2.master.cs" Inherits="MP2" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content> <%--一级母版页预留的坑--%> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> <%--一级母版页预留的坑--%> <div style="width: 30%; float: left; height: 500px; background-color: green;"> 这是一条菜单选项<br />
<br />
这是一条菜单选项<br />
<br />
这是一条菜单选项<br />
<br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div> <div style="width: 70%; float: left; height: 500px; background-color: yellow;"> <asp:ContentPlaceHolder ID="MP2_Content1" runat="server">
</asp:ContentPlaceHolder> <%--二级模板挖的坑,留给后面填--%> </div> <div style="clear: both;"></div> <asp:ContentPlaceHolder ID="mp2_js" runat="server"></asp:ContentPlaceHolder>
</asp:Content>

二级母版页

三、建立使用母版页的Web窗体

在新建web窗体时,选择要套用的母版页

 1、套用一级模板页

在新建的web窗体中有两个Content控件,与一级母版页相对应

<%@ Page Title="" Language="C#" MasterPageFile="~/MP1.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <h1>这是页面1,是我们套母版页出来的页面!!!!</h1> </asp:Content>

2、套用二级母版页

在新建Web窗体中只有一个Content控件,自己挖的那个

<%@ Page Title="" Language="C#" MasterPageFile="~/MP2.master" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>

<asp:Content ID="Content1" ContentPlaceHolderID="MP2_Content1" Runat="Server">

    <h1>这里是我们套用二级母版页MP2出来的页面啊啊啊!!!!</h1>

</asp:Content>

四、母版页与子页之间数据的传递:

在子页中没有办法从外面访问到母版页的内部

可已写公共方法用调用方法的形式传值

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; public partial class Default3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Button1.Click += Button1_Click;
} //点击事件
void Button1_Click(object sender, EventArgs e)
{
string s =TextBox1.Text; //获取文本框的值 Label1.Text = s; MP2 m2 = this.Master as MP2; //获取当前这个页的母版页
m2.aaa(s); //调用这个母版页的方法
}
}

子页

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; public partial class MP2 : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{ } public void aaa(string a) //二级母版中的 公共方法
{
TextBox1.Text = a; // 将传进来的值赋到 TextBox1 上 MP1 m1 = this.Master as MP1; //获取当前这个页的母版页
m1.m1_aaa(a); //调用这个网页的母版页的方法
}
}

二级母版页

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; public partial class MP1 : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{ } public void m1_aaa(string a)
{
TextBox1.Text = a; //方法
}

一级母版页

  MP1 m1 = this.Master as MP1;   //获取当前这个页的母版页

    子页 —— 二级母版  ——  一级母版     一层层传递

五、母版页公共的外部样式表路径和外部JS文件的路径匹配

css  会自动匹配相应的路径

js   不会自动匹配

        <script src="<%=abc() %>"></script>   <%--引用外部的js,(在 form 内)--%>
</form> <%-- 前台引用 --%> --------------------------------------- public string abc()
{
return ResolveClientUrl("js/js1.js");
} <%-- 后台写方法 --%>

引用外部 js 时,可以写一个方法,自动获取正确的路径

return ResolveClientUrl(" 路径 ")

WebFrom 【母版页】的更多相关文章

  1. webfrom 母版页

    ASP.NET中母版页作用 一是提高代码的复用(把相同的代码抽出来) 二是使整个网站保持一致的风格和样式. 母版页存在就一定要有内容页的存在,否则母版页的存在就没有了意义. .master 一.添加母 ...

  2. CSS 使用母版页的内容页如何调用css和javascript

    方案一: 把所有的css样式和javascript函数放到母版页的<head></head>中,我觉得这样做的弊端就是导致母版页的<head></head&g ...

  3. ASP.NET MVC之路由特性以及母版页呈现方式(十二)

    前言 这一节我们开始讲讲基础的东西也就是如题目所言,个人觉得当学习或者利用MVC时,必须得知道最新迭代版本新增了什么,至少得知道MVC 3.MVC 4或者MVC 5有什么区别,而不至于当利用到低版本时 ...

  4. SharePoint 2013 入门教程之创建及修改母版页

    在SharePoint 2013中,微软提供了根据HTML页面转换Master页的方法,并支持单项同步,但是这样的更新,并不完善,会使一些功能造成丢失,所以,了解Master结构的人,尽量直接去修改M ...

  5. SharePoint 2013 图文开发系列之Visual Studio 创建母版页

    一直以来,对于SharePoint母版页的创建,都是使用SharePoint Designer来创建和修改的,而后接触了SharePoint 2013,发现可以使用Html文件,通过设计管理器导入,然 ...

  6. SharePoint 2013 母版页取消和HTML页关联

    前言:在新版本的SharePoint 2013上,有新的功能可以通过HTML导入母版页,然后HTML和Master页面相关联,更改HTML页的时候,Master会自动同步修改,然而,有些时候我们不需要 ...

  7. 自定义母版页之列表过滤菜单位置issue fix

    问题描述: 自定义母版页,为了使左边导航和顶部导航位置不变(不滚动),将原本位于ribbon下方的#s4-workspace调整到左侧导航右边. <div id="s4-workspa ...

  8. 无废话SharePoint入门教程四[创建SharePoint母版页]

    一.前言 文章成体系,如果有不明白的地方请查看前面的文章. 二.目录 1.创建HTML页面 2.将HTML文件转换为SharePoint母版页 3.在 SPD中修改母版页“PlaceHolderMai ...

  9. 042. asp.net使用缓存来提高母版页的访问性能

    Asp.Net缓存技术是一项非常重要的技术, 当一个页面被频繁的访问, 如果不使用缓存技术, 那么每访问一次就要回发一次服务器, 显然这样对服务器造成很大的负担, 所以, 可以在被频繁访问的页面中设置 ...

随机推荐

  1. ABP框架系列之十一:(AspNet-Core-ASPNET核心)

    Introduction This document describes ASP.NET Core integration for ASP.NET Boilerplate framework. ASP ...

  2. javascript 取整,取余数 math方法

    1.丢弃小数部分,保留整数部分 parseInt() 函数可解析一个字符串,并返回一个整数. parseInt(string, radix) 参数 描述 string 必需.要被解析的字符串. rad ...

  3. Paper | 块分割信息 + 压缩视频质量增强

    目录 1. 亮点 2. 网络 3. Mask 及其融合 4. 结论 论文:Enhancing HEVC Compressed Videos with a Partition-Masked Convol ...

  4. undo空间满的处理方法(含undo的学习与相关解释)

    1.查看数据库当前实例使用的是哪个UNDO表空间: show parameter undo_tablespace 2.查看UNDO表空间对应的数据文件和大小 pages col file_name f ...

  5. MySQL体系结构和存储引擎概述

     MySQL体系结构和存储引擎概述 一.定义数据库和实例 数据库: 物理操作系统文件或其他形式文件类型的集合.数据库文件可以是frm.MYD.ibd 结尾的文件. 从概念上来说,数据库是文件的集合,是 ...

  6. rocketmq搭建趟坑记

    这个坑对小白来讲可能要趟很久才能过,我就是这样~~明明很简单的配置,搞了半天 我用的是rocketmq4.1.0,配置了jvm参数,都能正常启动,且能在线上运行demo,但是线下就是连不上 在conf ...

  7. Linux开机执行指定shell

    目的:希望linux在开机或重启后第一时间启动部分服务或者执行特定脚本 1.需要在/etc/init.d/目录下建立对应的shell脚本,示例如下: 开机启动docker-compose中的所有容器 ...

  8. Django model select的各种用法详解

    <Django model update的各种用法介绍>文章介绍了Django model的各种update操作,这篇文章就是她的姊妹篇,详细介绍Django model select的用 ...

  9. 脚手架vue-cli系列五:基于Nightwatch的端到端测试环境

    不同公司和组织之间的测试效率迥异.在这个富交互和响应式处理随处可见的时代,很多组织都使用敏捷的方式来开发应用,因此测试自动化也成为软件项目的必备部分.测试自动化意味着使用软件工具来反复运行项目中的测试 ...

  10. 递归查询区域信息及子区域到advTree

    效果: DataTable dtArea = new DataTable(); private void Form1_Load(object sender, EventArgs e) { Node n ...