ASP.NET 母版页(嵌套、访问母版页的控件和属性)

article/2025/8/16 20:12:46

文章目录

    • @[toc]
      • 一、母版页的嵌套
      • 二、访问母版页的控件和属性
        • 1、使用Master.FindControl()方法访问母版页上的控件
        • 2、引用@MasterType指令访问母版页上的属性


友情链接:母版页的概述与创建

一、母版页的嵌套

嵌套就是大的容器套装小的容器。嵌套母版页就是指创建一个大的母版页,在其中半酣另外一个母版页。利用母版页可以创建组件化的母版页如下图所示:

在这里插入图片描述
下面通过一个例子实现一个简单的嵌套母版页功能:

首先创建一个项目,然后创建一个母版页,名字为MainMaster,接着着创建一个Web窗体母版页(嵌套)注意是嵌套!命名为:SubMaster,然后添加一个包含母版页的Web窗体,命名为:Default.aspx并将其作为SubMaster的内容页。友情提示:快捷键ctrl+shift+a弹出添加新项页面。

创建完成之后,我们的解决方案资源管理器是这个样子的:
在这里插入图片描述
然后开始下一步操作,在MainMaster.Master界面开始写代码:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MainMaster.master.cs" Inherits="_01.MainMaster" %><!DOCTYPE html><html>
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title>主母版页</title><asp:ContentPlaceHolder ID="head" runat="server"></asp:ContentPlaceHolder>
</head>
<body><form id="form1" runat="server"><div><table style="width:759px;height:634px" cellpadding="0" cellspacing="0" align="center"><tr><td style="background-image:url(Image/banner.jpg);width:759px;height:153px"></td></tr><tr><td style="width:759px;height:374px" align="center" valign="middle"><asp:ContentPlaceHolder ID="MainContent" runat="server"></asp:ContentPlaceHolder></td></tr><tr><td style="background-image:url(Image/3.jpg);width:759px;height:107px"></td></tr></table></div></form>
</body>
</html>

这个是主母版页的代码,在这个代码中在适当的位置占了一个ContentPlaceHolder

子母版页以.master为扩展名,代码包含代码头声明Content控件。不包含主母版页中的<html> <body>等HTML元素,然后开始写代码:

<%@ Master Language="C#" MasterPageFile="~/MainMaster.Master" AutoEventWireup="true" CodeBehind="SubMaster.master.cs" Inherits="first.SubMaster" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"><table style="background-image:url(Image/2.jpg);width:759px;height:374px;"><tr><td align="center" valign="middle"><h1>子母版页</h1></td><td align="center" valign="middle" style="width:451px;"><asp:ContentPlaceHolder ID ="SubContent" runat="server"></asp:ContentPlaceHolder></td></tr></table>
</asp:Content>

在子母版页的@Master指令中添加了MasterPageFile属性以设置夫母版页路径,从而实现嵌套。

接着就是内容页的代码了,内容页的代码包含两部分,即代码头声明Content控件。由于内容页绑定子母版页,所以代码头中的属性MasterPageFile必须设置为子母版页的路径。代码如下:

<%@ Page Title="" Language="C#" MasterPageFile="~/SubMaster.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="first.Default" %>
<asp:Content ID ="Content2" ContentPlaceHolderID="SubContent" runat="server"><table style="width:451px;height:391px"><tr><td><h1>内容页</h1></td></tr></table>
</asp:Content>

大功告成!看一下效果:

在这里插入图片描述


二、访问母版页的控件和属性

内容页访问母版页中的属性、方法和控件有一定的限制。对于属性和方法的规则是:如果它们在母版页上被声明为公共成员,则可以访问它们。在引用母版页上的控件时,没有只能访问公共成员的这种限制。

1、使用Master.FindControl()方法访问母版页上的控件

在内容页中,Page对象具有一个公共属性Master,该属性能够实现对相关母版页基类MasterPage的引用。可以用MastetPage对象实现对母版页中各个对象的访问,但由于母版页中的控件时受保护的,不能直接访问,那么就必须使用MasterPage对象中的FindControl方法实现。

接下来看一个例子,内容页中定义一个Label将他赋值为母版页上的Label的内容:

新建网站,添加母版页MasterPage.master,再添加一个Web窗体命名为Default.aspx,作为内容页。然后开始写代码:

MasterPage.master代码(部分):

            <table style="width:759px;height:634px" align="center"><tr><td><asp:Label ID="Mlabel" runat="server" Text="Label"></asp:Label></td></tr><tr><td><asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"></asp:ContentPlaceHolder></td></tr></table>

MasterPage.master.csPage_Load方法代码:

        protected void Page_Load(object sender, EventArgs e){this.Mlabel.Text = DateTime.Now.ToString();}

Default.aspx代码:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Master.FindControl访问母版页控件.Default" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"><asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
</asp:Content>

Default.aspx.cs代码中的Page_LoadComplete代码:

        protected void Page_LoadComplete(object sender,EventArgs e){Label MLable1 = (Label)this.Master.FindControl("Mlabel");this.Label2.Text = MLable1.Text;}

大功告成!

2、引用@MasterType指令访问母版页上的属性

引用母版页中的属性和方法,需要在内容页中使用@MasterType指令,将内容页的Master属性强类型化,即通过@MasterType指令创建与内容页相关的母版页的强类型引用。在设置@MasterType指令时,必须设置VirtualPath属性用于指定与内容页相关的母版页的存储地址。

看个例子,拿上面的步骤来继续实现:

首先在MasterPage.master.cs代码中,写入以下代码(定义了个属性)

        string mValue = "";//定义属性public string MValue{get { return mValue; }set { mValue = value; }}

然后把<%= this.MValue%>绑定到MasterPage.master代码页可以放在Label控件下面。

然后就是去设置VirtualPath地址了,打开Default.aspx,粘贴以下代码在最上面:

<%@MasterType VirtualPath="~/MasterPage.master" %>

最后在Default.aspx.cs代码中访问一下这个属性:

        protected void Page_Load(object sender, EventArgs e){Master.MValue = "Welcome";}

大功告成喽~~!!!



http://chatgpt.dhexx.cn/article/uHCZk6fk.shtml

相关文章

C# 母版页页面导航

C# 母版页&页面导航 母版页master页面导航站点地图SiteMapDataSource控件TreeView控件Menu控件 ASP.NET常用对象Response对象Request对象ViewState对象Server对象Session对象Cookie对象ApplicationResponse对象 母版页master localhost:50194 第一种情况&#xff1a;在he…

C#母版页

一、母版页的使用 1、概述 母版页为具有扩展名.master的ASP.NET文件&#xff0c;它具有包括静态文本、HTML元素和服务器控件的预定义布局。母版页由特殊的master指令识别&#xff0c;该指令替代普通页面.aspx中的page指令。该指令类看起来类似下面的代码&#xff1a; <% M…

html如何转换为母版页,如何在模板中指定/或取消母版页

很多时候模板中我们需要用到不同的母版页&#xff0c;那么如何在模板中引用不同母版页呢&#xff1f; 方法1、_ViewStart.cshtml中声明&#xff0c;代码如下&#xff1a;{ Layout "_Layout.cshtml"; } 模板Views目录中默认有一个全局的_ViewStart.cshtml文件&#xf…

ASP.NET 母版页

母版页 母版页的功能为提高工作效率、降低开发和维护强度。母版页应用于网站标志、广告条、导航条、版权声明等内容。 创建母版页的步骤&#xff1a; 第一步&#xff1a;打开“Microsoft Visual Studio 2010”程序&#xff0c;选择“文件”—“新建”—“项目”&#xff0c;弹…

asp.net-母版页设计

先引入几个图片&#xff1a; 母版页的.aspx代码如下&#xff1a; <% Master Language"C#" AutoEventWireup"true" CodeFile"A_TEST.master.cs" Inherits"A_TEST" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans…

html中创建母版页,自定义“我的网站”母版页

使用内容占位符控件 母版页和内容页使用一组可替换区域(也称内容占位符控件)协同工作。 每个内容占位符(在页面代码中显示为 ContentPlaceHolder)均表示可在母版页上覆盖的内容。 网站上的任何页面均可通过提供匹配的内容控件替换内容占位符中包含的任何内容。 该内容控件甚至可…

ASP.NET 母版页,内容页之间如何传参数

ASP.NET 母版页,内容页之间如何传参数 绪论:本文介绍如何使用.net 母版页(.master)和内容页(.aspx)相互传参数 母版页传值到内容页 上面可以看见母版页的时间值已经到了内容页上面了&#xff0c;那么让我们一起来看看代码怎么实现的吧&#xff01; 来看看母版页的内容代码 从…

母版页和内容页的使用

虽然母版页和内容页功能强大&#xff0c;但是其创建和应用过程并不复杂。本节和下一节将以创建如图 1 所示示例为例&#xff0c;向读者详细介绍&#xff0c;使用 Visual Stuido 2005 创建母版页和内容页的方法以及相关知识。本节的重点是创建母版页的方法。 母版页中包含的…

VS2012 ASP.NET 母版页的创建与使用

在做牛腩新闻发布系统的过程中,需要使用ASP.NET的母版页来抽出所有网页的公共部分,以便更好的复用自己的网页布局和设计. 首先我们来看如何创建一个新的母版页,如下图所示: 添加之后,如下图所示: 编写完母版页之后,在使用的时候,问题出现了,在新建Web窗体时,右下角没有视频里讲…

ASP.NET母版页

4.2母版页 4.2.1 母版页概述 用户在设计网站时经常会遇到多个网页部分内容相同的情况&#xff0c;例如&#xff1a;具有网关和内容都相同的标题栏、页脚栏、导航栏等&#xff0c;如果每个网页都设计一次&#xff0c;不仅重复劳动而且非常繁琐&#xff0c;此时&#xff0c;使用母…

ASP.NET 母版页(概述、创建)

文章目录 一、母版页概述1、母版页的运行机制2、母版页的优点 二、创建母版页三、创建内容页 一、母版页概述 母版页的主要功能是&#xff1a;创建统一的用户界面和样式。它由一个母版页和&#xff08;多个&#xff09;内容页构成&#xff0c;这些内容页和母版页合并将母版页的…

母版页的使用

一、母版页简介 使用 ASP.NET 母版页可以为应用程序中的页创建一致的布局。单个母版页可以为应用程序中的所有页&#xff08;或一组页&#xff09;定义所需的外观和标准行为。 母版之所以称为母版&#xff0c;就是将大部分网页上固定内容&#xff0c;比如导航栏&#xff0c;版权…

Arduino驱动直流电机风扇

时隔多年&#xff0c;重拾Arduino&#xff0c;先拿直流电机风扇找一下手感。配套的东西如下图所示&#xff1a;直流电机、控制板、风扇、架子。   装好之后的效果如下图所示。   本文参照参考文献中的示例代码进行测试。参考文献中的代码主要通过按钮控制风扇的不同转速&…

BLDC无刷直流电机驱动程序

1.先不考虑霍尔信号&#xff0c;先让BLDC动起来&#xff0c;如下图&#xff0c;主要驱动6个MOS管&#xff0c;有两种驱动方式。第一种方式&#xff0c;上下桥臂都给PWM信号&#xff1b;第二种方式&#xff0c;3个PWM信号3个电平信号。 2.霍尔信号接到定时器的输入捕获&#xf…

直流电机驱动实验

直流电机驱动实验 实验现象 本实验采用小型直流电机驱动L9110驱动一个小型直流电机 理论学习 按照上图接线完成后可以对连接在驱动板上的电机经行控制。 A1.A20.0 时为停转 A1.A21.0 时为正转 A1.A20.1 时为反转 PA 为 PWM 波输入 G 为共地引脚 其中PWM频率最高为 60KHZ&a…

大功率双路直流电机驱动板的设计源文件

大功率双路直流电机驱动板的设计源文件&#xff0c;包括原理图、PCB、原理图与PCB器件库、BOM清单、stm32测试源代码。 &#xff08;注意&#xff1a;出售的是设计资料&#xff0c;出售的是资料&#xff0c;不是实际的产品哈&#xff09;&#xff0c;另外可对该图的设计原理&am…

【2022项目复盘】无位置传感器的无刷直流电机驱动设计

目录 概述BLDC发展历史现状未来前景 工作原理BLDC结构六步法 启动方式转子预定位转子的同步加速切入转子正常旋转程序 反电动势检测法硬件设计控制模块最小系统三相逆变器电路及其驱动设计端电压检测电路设计电流采样电路设计 回顾 概述 无位置传感器的无刷直流电机驱动设计是…

STM32 GPIO的配置以及直流电机驱动的实现

GPIO的配置以及直流电机驱动的实现 一、GPIO概述 GPIO&#xff1a;General-purpose input/output 通用型输入输出的简称 功能类似8051的P0—P3&#xff0c;其接脚可以供使用者由程控自由使用&#xff0c;PIN脚依现实考量可作为通用输入&#xff08;GPI&#xff09;或通…

lm298驱动电机c语言程序,机器人教程3:直流电机驱动及L298N模块

这一节我们主要介绍H桥电路,后面的章节我们会专门介绍到PWM调速问题。 3、H桥电路 电机做好后后引出两个极,如图5所示,给两个极能电就能够实现其转动,而改变其电源极性刚可以实现换向。 图5减速电机及电路图 前面我们说过必须要解决驱动力不足和换向问题,设计一般会采用两…

直流电机驱动电路

一、 直流电机驱动电路的设计目标 在直流电机驱动电路的设计中&#xff0c;主要考虑一下几点&#xff1a; 功能&#xff1a;电机是单向还是双向转动&#xff1f;需不需要调速&#xff1f;对于单向的电机驱动&#xff0c;只要用一个大功率三极管或场效应管或继电器直接带动电机即…