一、使用多种方式为内容页加载母版页
默认情况下是给单个内容页指定一个母版页加载,当多个内容页需加载到同一个母版页时,我们可以通过配置文件为多个内容页批量加载母版页,另外,还可以在PreInit事件中动态加载母版页。
1、为单个内容页加载母版页时,自动在内容页的Page指令里加上MasterPageFile属性
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage/Site.Master" ……%>
2、为多个内容页批量加载母版页时,在配置文件里添加MasterPageFile属性
<configuration>
<system.web>
<pages masterPageFile="~/MasterPage/Site.Master"/>
</system.web>
</configuration>
此时,配置文件目录下的所有内容页都会批量加载该母版页,普通页面会被母版页忽略,但要记得去掉内容页里Page指令的MasterPageFile属性,否则会重写配置文件里的MasterPage属性。
3、PreInit事件中动态加载母版页
母版页的加载在PreInit事件中,可以使用如下代码动态加载,
protected void Page_PreInit(object sender, EventArgs e)
{
MasterPageFile = "~/MasterPage/Site.Master";
}

二、如何在内容页中修改关联母版页的内容
很多时候多个内容页加载同一个母版页,为了使各个内容页中加载的同一个母版页内容有所不同,我们需要修改合并在内容页中的母版页内容。
1、修改Title标签属性
当母版页的head标签包含Runat=”Server”属性时,可以修改内容页的title标签属性,使其不显示母版页的默认title,
方法一是通过内容页前台设置的Page指令的Title属性,
<%@ Page Title="前台设置内容页标题" Language="C#" AutoEventWireup="true" ……%>
方法二是通过内容页后台设置Page.Header.Title 的值,
Page.Header.Title = "编程改变内容页标题";
2、修改Head标签属性
当母版页的head标签包含Runat=”Server”属性时,我们可以通过后台代码修改head标签包含的标签属性,并可以为head标签动态添加指定的标签,如“meta”标签;代码中Page.header返回的是HtmlHead对象,代表head标签,HtmlMeta对象代表Meta标签。
using System.Web.UI.HtmlControls;
……
……
protected void Page_Load(object sender, EventArgs e)
{
//修改head标签中的title标签属性
Page.Header.Title = "编程改变内容页标题";
//修改head标签包含的其它标签属性,间接修改了页面背景颜色
Style myStyle = new Style();
myStyle.BackColor = System.Drawing.Color.Red;
Page.Header.StyleSheet.CreateStyleRule(myStyle, null, "html");
//添加新标签meta到head标签中
HtmlMeta metaKeywords = new HtmlMeta();
metaKeywords.Name = "KEYWORDS";
metaKeywords.Content = "asp.net,c#";
HtmlHead head = Page.Header;
head.Controls.Add(metaKeywords);
}
3、修改其它服务器控件属性
A、直接修改法:
通过ID查找母版页控件,((Label)Master.FindControl("Label1")).Text = "内容页";
B、间接修改法:
先在母版页中将需要修改的控件属性包装成公开属性,
public string BodyTitle
{
get{return this.Label1.Text;}
set{ this.Label1.Text = value;}
}

asp.net访问母版页控件方法的更多相关文章

  1. jacob访问ocx控件方法和遇到的问题

    最近在进行摄像机的二次开发,摄像机厂商提供了使用C++开发的ocx控件:所以尝试使用jacob来进行访问. 操作步骤如下: 1, 从官网(http://sourceforge.net/projects ...

  2. ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法

    ASP.NET的FileUpload控件默认是不支持服务端的onchange事件的,此时可以用一种变通的方法来实现这一功能. 这就需要借用客户端的onchange事件,调用__doPostBack方法 ...

  3. 多线程访问winform控件出现异常的解决方法

    一.  多线程访问winform控件出现异常的解决方法 1.  问题描述<1> 如果创建某控件的线程之外的其他线程试图调用该控件,则会引发一个 InvalidOperationExcept ...

  4. asp.net js获取控件ID

    ClientID是由ASP.Net生成的服务器控件得客户端标识符,当这个控件生成到客户端页面的时候,在客户端代码访问该控件时就需要通过ClientID来访问. 以文本框为例: 一.未使用母版页 js可 ...

  5. (九)ASP.NET自定义用户控件(2)

    http://www.cnblogs.com/SkySoot/archive/2012/09/04/2670678.html 用户控件 在 .NET 里,可以通过两种方式把自己的控件插入到 Web 窗 ...

  6. asp.net中Repeater控件用法笔记

    大家可能都对datagrid比较熟悉,但是如果在数据量大的时候,我们就得考虑使用 repeater作为我们的数据绑定控件了.Repeater控件与DataGrid (以及DataList)控件的主要区 ...

  7. 轻松学习Asp.net中的控件

    C/S 结构,即大家熟知的客户机和服务器结构.它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销.目前大多数应用软件 ...

  8. 十三、asp.net中Repeater控件用法笔记

    大家可能都对datagrid比较熟悉,但是如果在数据量大的时候,我们就得考虑使用 repeater作为我们的数据绑定控件了.Repeater控件与DataGrid (以及DataList)控件的主要区 ...

  9. Access Grid Control Properties 访问网格控件属性

    In this lesson, you will learn how to access the properties of a list form's Grid Control in WinForm ...

随机推荐

  1. html image -- data:image/png;base64

    1,  data:image/png;base64 <!DOCTYPE HTML> <html> <head> <meta http-equiv=" ...

  2. react-native 布局基础

    宽度单位和像素密度 react的宽度不支持百分比,设置宽度时不需要带单位 {width: 10}, 那么10代表的具体宽度是多少呢? 不知道是官网文档不全还是我眼瞎,反正是没找到,那做一个实验自己找吧 ...

  3. AC自动机跟随Kuangbing学习笔记

    http://www.cnblogs.com/kuangbin/p/3164106.html kuangbin的博客 第一段代码基本是COPY kuangbin的.. 1.HDU 2222 Keywo ...

  4. 第四章 Linux环境

    程序参数 main函数声明: int main(int  argc, char  *argv[]) 其中argc是接受到的参数个数,argv是存储参数的字符串数组. 或者声明为: main() 这样也 ...

  5. RocketMQ与Kafka对比(18项差异)评价版

    此文是rocketmq作者vintage.wang所写,对于每项对比,后面都增加了我的观点,有不对的地方,请各位指出. 淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为 ...

  6. Win7窗口操作

    1.使用 Aero Shake 晃动最小化打开的窗口您可以使用 Aero Shake 晃动将所有打开的窗口快速最小化,只剩下您需要使用的窗口.然后,还可以轻松还原所有窗口.操作方法如下:1. 在需要保 ...

  7. Core Bluetooth下实现两个设备进行互联

    一.外设管理者 - 发布广告 如果两部手机在BLE的基础上进行连接,需要让其中一部手机作为外设,外设需要进行广播自己需要发布的数据,以供中心设备的接收和处理. 实现外设广播数据并且处理发送过程当中的流 ...

  8. iOS控制器的创建方式

    iOS控制器的创建.除了常见的alloc init外还有通过加载storyboard和xib的方式,下边逐一展开: 1.代码alloc init 创建方式 ViewController *vc= [[ ...

  9. MySql小知识点

    1.查看MySql是什么编码 show create table tablename;

  10. Oracle表分区[转]

    废话少说,直接讲分区语法. Oracle表分区分为四种:范围分区,散列分区,列表分区和复合分区. 一:范围分区 就是根据数据库表中某一字段的值的范围来划分分区,例如: create table gra ...