Master Page 初探

掌握*** 2.0:使用Master Page和皮肤实现主题化设计 本文还有配套的精品资源,点击获取 简介:*** 2.0是一个简化Web开发的框架,通过引入Master Pages、Themes和Skins来提高页面布局和样式管理的效率。本教程将指导如何创建统一的布局模板、集中管理页面样式以及定义控件外观属性。掌握这些特性,开发者能够构建出结构清晰、样式统一且易于维护的Web应用。 1. *** 2.0 Master Page与... 阅读详情

Master Page 初探

狂※痴(zhangleixp)

2006-05-24

Master Page (母版页)是VS.NET2005中的新特性,提供了页面模板的功能。该模板是动态的,可以由内容页面自主选择。

1 Master Page的组成

Master Page主要由两部分组成:Master Page(母版页)本身和一个或多个Content Page(内容页)。

1.1母版页(Master Page)

母版页与用户控件(User Control)类似,主要的不同点有:

(1)母版页的扩展名为.master,如Default.master。该扩展名和System.Web.HttpForbiddenHandler 相关联,因此客户端浏览器不能直接访问到母版页。

(2)母版页由@Master指令标记,不含有@Page或@Control指令。@Master中包含的指令和@Control中包含的指令基本相同。

[代码示例1]@Master指令

<%@ Master Language="C#" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>

(3)母版页可以包含若干个ContentPlaceHolder控件。这些占位符控件定义了内容页(Content Page)的位置,并被内容页覆盖。

通过VS.NET向导可以直接建立一个母版页,和建立用户控件类似。并且可以在母版页上添加你所需要的其他控件,如SiteMapPath等等。

[代码示例2]一个简单母版页(Example.master)

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

 

<!DOCTYPE html PUBLIC "-//W 3C //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">

        <table width=”100%”>

            <tr>

                <td>

                    <asp:contentplaceholder id="HeaderHolder" runat="server">

                    </asp:contentplaceholder>

                </td>

            </tr>

            <tr>

                <td>

                    <asp:ContentPlaceHolder ID="MainHolder" runat="server">

                    </asp:ContentPlaceHolder>

                </td>

            </tr>

            <tr>

                <td>

                    <asp:ContentPlaceHolder ID="FooterHolder" runat="server">

                    </asp:ContentPlaceHolder>

                </td>

            </tr> 

        </table>

    </form>

</body>

</html>

从上面的示例中可以看到,母版页中含有<HTML>,<HEAD>,<BODY> 和 <FORM> 这些顶级HTML元素,而内容页中是没有的。

Example.master母版页在Visual Studio 设计器中如下所示:

图1 Example.master 在VS.NET 设计器中的样式

图1 Example.master 在VS.NET 设计器中的样式

需要注意的是,母版页和内容页的关系不是继承关系,虽然和继承的特点很相近。MasterPage类的基类是UserControl。MasterPage类的声明为:public class MasterPage : UserControl 。

最后需要注意的是,母版页不支持主题(Theme)。

1.2内容页(Content Page)

内容页就是用于替换母版页中的ContentPlaceHolder的ASP.NET页面,.aspx扩展名。在VS.NET新键页面向导中选择WebForm,并选择“Select master page”,然后选择该内容页相应的母版页即可。

内容页通过@Page指令MasterPageFile,指定需要使用的母版页。如下所示:

<%@ Page Language="C#" MasterPageFile="~/Example.master" AutoEventWireup="true" CodeFile="A.aspx.cs" Inherits="A" Title="内容页A标题" %>

在内容页中添加Content控件,并将其映射到母版页上的ContentPlaceHolder。然后向Content控件中添加你所需要的文本或其他控件。

[代码示例3]

<%@ Page Language="C#" MasterPageFile="~/Example.master" AutoEventWireup="true" CodeFile="A.aspx.cs" Inherits="A" Title="内容页A标题" %>

<asp:Content ID="HeaderContent" ContentPlaceHolderID="HeaderHolder" Runat="Server">

    Head Style 1.

</asp:Content>

<asp:Content ID="MainContent" ContentPlaceHolderID="MainHolder" Runat="Server">

    <p>

        使用 ASP.NET 母版页可以为应用程序中的页创建一致的布局。单个母版页可以为应用程序中的所有页(或一组页)定义所需的外观和标准行为。然后可以创建包含要显示的内容的各个内容页。当用户请求内容页时,这些内容页与母版页合并以将母版页的布局与内容页的内容组合在一起输出。

    </p>

</asp:Content>

<asp:Content ID="FooterContent" ContentPlaceHolderID="FooterHolder" Runat="Server">

    Powered by <a href="http://zhangleixp.itpub.net/" title="访问作者主页:zhangleixp.itpub.net">zhangleixp</a>

</asp:Content>

2 母版页和内容页的组合及运行行为

2.1 URL

前面已经说过,不能直接获取母版页,如:http://202.119.192.211/Example.master 这样的请求是不正确的。应该使用内容页的URL来请求某个页面。

2.2 合并

经过编译的母版页将被合并到内容页的控件树中,Content控件中的内容合并到相应的ContentPlaceHolder控件中。如图:

图2 内容页和母版页的组合结果页

图2 内容页和母版页的组合结果页_控件树

图2 内容页和母版页的组合结果

可以看到,母版页是内容页的一部分,就和用户控件的行为相同。他们的关系是这样的:内容页是母版页的容器,母版页又是一个的容器,包含了内容页中相应Content中的控件。

2.3 初始化次序

(1)母版页-Init

(2)内容页-Init

(3)内容页-Load

(4)母版页-Load

(5)内容页-PreRender

(6)母版页-PreRender

2.4 页面执行环境及URL转换

母版页和内容页合并后,页面的执行环境为内容页的环境,这样会不会导致母版页中资源引用或相对URL出现错误呢?对于服务器控件,ASP.NET可以自动解决这个问题,比如母版页上的一个Image控件,其ImageUrl为相对URL:“images/banner.gif”,当母版页和内容页组合时,ASP.NET将其转换为合适的URL。对于非服务器控件或标记,如<IMG>,ASP.NET将不做任何转换,因此,在母版页中,应该尽量使用服务器控件。

3 动态引用母版页

内容页中可以动态地引用母版页,通常在PreInit中设置需要使用的母版页。如下:

protected void Page_PreInit(object sender, EventArgs e)

{

    this.MasterPageFile = "~/Example.master";

}

4 获取母版页上的控件

运行时,母版页和内容页合并了,因此可以访问母版页上的控件。可以使用FindControl方法来定位母版页上的控件。如果要访问ContentPlaceHolder中的控件,需要先获取ContentPlaceHolder控件的引用,然后再调用其FindControl方法。也就是说需要两次调用FindControl方法。

另外一种方法是在母版页中公开属性来进行访问。

5 嵌套母版页

懒得写了,需要的自己找资料吧。:)

 

 

C#的Modbus Master Slave库 C#写的Modbus协议主从站类库,包含源代码。实际使用过。适用于工业控制软件开发。 立即下载

相关推荐

SAP 运费处理方式

从直接的处理方式上看,情况1/2/3可以将运费记账到物料成本中,但情况4/5/6是直接记账到成本对象中,具体是要体现在损益表中,还是要结转到物料成本中,可依据业务要求进行好处理。如果体现在损益表中,不需要多过多额外的操作,如果要体现在物料成本中心,则需要再进行一系列的处理,最终将金额结转到物料成本中。因为在创建采购订单时不知道具体运费,可以不维护运费,只需要维护材料价格。:创建采购订单时,运费是由供应商承担,很多时候是包含在材料报价中,这种情况不需要专门针对运费进行处理,材料价格中已包含运费。

weixin_44506537的博客 3371

VTemplate模板引擎的使用 - MasterPage篇

在做WebForm编程开发时用过MasterPage的同学,可能都对这东东情有独钟。今日在QQ群上,“家有萧萧”同学也提出了这样一个问题:VT支持MasterPage吗? 答案肯定是“不支持”,因为VTemplate模板引擎不是用于WebForm上的(当然如果非要用也是可以的),所以不支持Asp.net中的MasterPage技术。但“不支持”并不等于“没有”这功能!   方法一

技术资料收集站 1123

未来计算的革命:探索存算一体芯片的潜力与挑战

未来计算的革命:探索存算一体芯片的潜力与挑战

jtwqwq的博客 1611

操作Master页的服务器端控件

Master页是提供模版的一种简单方式,该模板可由应用程序中的任意多个Asp.Net页使用,在运行的时候,Asp.Net引擎会把Master页和Content页的相关元素合并到一个页,并显示给终端.在Content页里如何操作Master页的控件呢?先看看在处理Master页和Content页时可以使用的事件,及终端用户请求一个Content页时,相关事件的触发顺序:Master页子控件的初始化:...

weixin_34253539的博客 162

使用Qt在FreeRTOS上构建MCU应用程序

如果我们想要在FreeRTOS上运行该应用程序,我们需要选择适用于我们处理器架构的交叉编译工具链,并将目标设备设置为我们的开发板。在该代码中,我们使用xTaskCreate()函数创建了一个名为“qt_task”的任务,并将其启动。首先,我们需要安装Qt for MCU开发环境。Qt for MCU是基于Qt 5开发的针对MCU的特殊版本,它可以生成最小体积的代码,从而适用于资源有限的嵌入式系统。如果我们想要在FreeRTOS上运行这个程序,我们需要将其包装在一个任务中,并在任务创建后启动Qt的事件循环。

ByteWhizX的博客 1815

三臂杆大型液压机械臂集中式ADRC控制系统设计

本文设计了一种用于三臂杆液压机械臂的集中式自抗扰控制(ADRC)系统。该系统通过建立包含惯性矩阵、科氏力、重力及摩擦力的非线性动力学模型,并集成液压系统传递函数,构建了完整的系统模型。控制方案采用跟踪微分器安排过渡过程,扩张状态观测器实时估计系统状态和总扰动,以及非线性状态误差反馈生成控制量。MATLAB实现展示了集中式ADRC控制器的核心结构,包括参数定义、跟踪微分器、扩张状态观测器和非线性反馈模块的设计。该系统能有效处理多关节耦合效应,实现三输入三输出的MIMO控制,具有抗干扰能力强、响应速度快的特点。

huanghm88的专栏 269

Asp .net MasterPageFile母版页

MasterPageFile母版页 本来想用最简洁的语言来表述,却发现把它搞得更复杂了。 刚开始学,什么都不懂,看到了这段代码,才促使自己去研究MasterPageFile到底是什么含义。 MasterPageFile其实是定义一个了外围的框架的页面,并且在里面设定了具体内容存放的位置。举例来说,MasterPageFile 就相当于相框的功能。网站的真正具体页面实

sunshine 5705

SAP FI 会计科目表(COA)可直接套用配置模板

摘要:本文提供了SAP S/4HANA环境下可直接套用的会计科目表(COA)配置模板,包含科目编码规则、号段规划、科目组设置等核心内容。模板采用10位数字编码,按资产(1000)、负债(2000)、权益(3000)、成本(4000)、收入(5000)、费用(6000)六大类划分号段,并预设科目组控制字段状态。适用于集团/单一公司、国内/跨国企业场景,支持多表架构映射,配置完成后可通过事务码SAKO验证科目清单。模板遵循"前4位固定一级科目"原则,企业可根据行业特性调整明细科目。

金牌架构师 266

访问母版页控件及属性

获取母版页的相关内容有两种方法1 通过findcontrol找控件ID 需要在此事件中~因为Page_load中时是先内容页加载然后才是母版页加载    protected void Page_LoadComplete(object sender, EventArgs e)    {        Label2.Text = "现在时间是" + (Master.FindControl("Lab

老农写代码 1485

ASP.NET Core 6 Web API在IIS上的部署与调试

通过以上步骤和配置,你应该能够成功部署并调试你的ASP.NET Core 6 Web API在IIS上。记住,权限和配置是关键,确保你的环境和应用程序代码都正确设置。希望这篇博客对你部署和解决IIS上的问题有所帮助。

m0_74337424的博客 522

SO_KEEPALIVE、TCP_KEEPIDLE、TCP_KEEPINTVL、保活包

是一个套接字选项,用于设置是否启用 keepalive 机制。在这段代码中没有涉及到选项的设置。当被设置为非零值时,表示启用 keepalive 机制。keepalive 是一种用于检测连接是否仍然有效的机制。通过定期发送一些特定的探测数据,可以检测到网络连接的异常中断或对端应用程序的崩溃退出。为了避免以上情况,可以启用 keepalive 机制,即使在无数据传输的情况下也定期发送探测数据。如果在一定时间内没有收到对端的响应,就认为连接已经失效,并进行相应的处理。要启用选项,需要使用函数。其中,fd。

m0_46376834的博客 4816

C#ModBus Tcp的学习及Master的实现

Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。 所以这也是我们工控领域软件开发的所必懂的通讯协议,我也是初次学习,先贴上我的学习笔记 一 .协议概述 (1)Modbus协议是应用于控制器上的一种通用语言,实现控制器之间,控制器通过网络和其他设备之间的通信,支持传统RS232/RS422/RS485和以太网设备,它...

weixin_30279315的博客 2077

高压控制单元与接触器 —— BMS电池的“高压大门”

高压接触器在BMS电池管理系统中扮演着“高压大门”的角色,负责控制电池包与整车高压母线的连接与隔离。接触器的工作原理基于线圈产生的磁力吸合接点,通过主触点接通高压电流路径,辅助触点检测状态,灭弧结构保护接点。预充电路的设计是为了避免直接连接大电容时产生的浪涌电流冲击,通过预充电阻逐步充电,确保系统安全上电。接触器控制策略包括顺序控制、辅助触点检测、温度监控、故障断电和背靠背MOS辅助控制,以确保系统的高效和安全运行。工程师在选择接触器型号、控制线圈、检测状态、软件冗余控制和预充失败保护等方面提供了具体建议。

weixin_43199439的博客 812

实现Master Page

实现Master Page  在ASP.NET v2.0中,Master Page实现为一个Web页面,其中包含内容页面可以使用的默认外观和操作方式。多个内容页面只需提供合并到Master Page中的内容标记,即可使用这个Master Page的统一外观和操作方式。本节的示例将使用VS 2005创建一个Master Page和简单的内容页面。首先,创建一个新的Web项目,删除自动

SmartJavaer的专栏 1518

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

如何在SharePoint中创建Custom Master Page

SharePoint中有许多自带的模板页,但有时候不能满足我们的需要。那么怎么办呢?SharePoint提供自定义模板功能,下面我们来看看一个简单自定义模板是怎么实现的。 1. 安装Features 要使用自定义模板功能,首先需要给自己的站点开通发布自定义模板的Feature。 第一步:Site Actions --> Site Settings --> Site Collection Ad

lance_lot1的专栏 883

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

page life cycle of master page with content page

Generally one question is faced by very developer what is asp.net page life cycle every body know very well like sequence of asp.net page event like page_init Page_load Page_render Page_unl...

ailiu6134的博客 93

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

完全隐藏Master Page 页面编辑菜单

1. 在Master Page Head 增加下面的Style <style type="text/css"> #ctl00_PageStateActionButton{ visibility:hidden;} </style> 2. 增加SPSecurityTrimmedControl <SharePoint:SPRibbonPeripheral...

weixin_34219944的博客 399

清空Master Page 下的 Content Page 下的所有 textBox

清空Master Page 下的 Content Page 下的所有 textBox  asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> asp:TextBox ID="TextBox1" Text="a" runat="server">asp:TextBox>

Leon 888

How to handle form events after adding a master page to an existing page

Here is a question that was asked on my posting trying to invite questions, Got a question- Get an answer here.QuestionSomething that would be handy straight from the team is how to handle ASP.NET

薛敬明的专栏 1155

Sharepoint习题——master page

Question23 You have a SharePoint site. The current master page of the site is v4.master. You create a custom master page named MyMasterPage.master. You deploy the master page to /_catalogs/masterp

xiaxianglanyu的专栏 1278

.aspx、.master、ascx中Page_Load执行顺序

.aspx、.master、ascx这三个页面中Page_Load的执行顺序是:.aspx中的pg-->.master中的pg-->ascx中的pg

947

关于Page,Master,UserControl的初始化及加载顺序

平时没太关注,现在来看一下,以前一直没有刻意去想到底页面、母版页、用户控件、母版页控件到底哪个先Init哪个先Load现在就写程序测试了一下 结果如下:Control2 Init! 母版页上的控件 初始化Control Init! Page页上的控件 初始化Master Init! 母版页 初始化Page Init! Page页面 初始化Page...

270

完全隐藏Master Page Site Actions菜单只有管理员才可以看见

1. 在Master Page Head 增加下面的Style <style type="text/css"> .ms-cui-tt{visibility:hidden;} </style> 2. 增加SPSecurityTrimmedControl <SharePoint:SPRibbonPeripheralContentrunat="...

weixin_34179762的博客 228

Master Page 和 Theme Skin

Master Page 和 Theme Skin 1.基本介绍Asp.Net2.0 包含大量用于定制外观的新特性。其中,服务器端控件提供Style对象模型,用于定制字体、边界、背景前景颜色、宽度、高度等等信息。同时,控件还支持使用CSS定制其外观。还可以把所有这些定制在一些skin文件里,并把这些描述控件外观的skin文件放置在theme文件夹中,反复使用。 对于HTML控件,

切尼的专栏 1334
上一篇: 让Windows XP 登录时打开数字键
下一篇: Visual Studio 2005,爽歪歪!
zhangleixp
博客等级 码龄21年 6粉丝 44原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值