一、使用多种方式为内容页加载母版页
默认情况下是给单个内容页指定一个母版页加载,当多个内容页需加载到同一个母版页时,我们可以通过配置文件为多个内容页批量加载母版页,另外,还可以在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. c# 高斯模糊

    using System; using System.Collections.Generic; using System.Text; using System.Drawing; using Syste ...

  2. iOS/iPhone 程序文件目录结构以及启动流程

    要想清晰的理解IOS应用程序的启动过程,毫无疑问需要深入了解一下ios应用程序的文件系统.一个ios应用程序都有一个属于自己沙盒(sandbox),应用沙盒就是文件系统目录,并且与文件系统的其他部分隔 ...

  3. C#关于ref的用法(多个实参值的传递)

    按照C#默认的按值调用参数的传递机制,不能刻编写出一个方法来实现两个int类型的值交换,因为一个方法只能对应一个返回值,如何实现将两个交换的值传递回去,这里我将用到的是ref修饰符. 使用ref的单值 ...

  4. [转载]android中The connection to adb is down,问题和解决

    原网址:http://blog.sina.com.cn/s/blog_5fc93373010164p3.html 今天我出现了第3个错误,于是百度了一下.感觉这篇博客对我挺有帮助,推荐给大家.以下是原 ...

  5. ASP.NET和PHP全面对比

    谁是速度之王? 刚刚在9月编程语言排行榜上取得历史性突破的PHP在Web开发领域最到的对手可能就是基于微软.NET技术的ASP.NET.近日,微软的 Joe Stagner在博客上发表了一系列文章比较 ...

  6. mysql 取得行号后再排序

    一.理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. TreeMap:基于红黑树(Red-Black tre ...

  7. struts1:Struts配置文件初解

    struts-config.xml是Struts的核心文件.该文件可配置各种组件,包括,FormBeans,Actions,ActionMappings,全局转发GlobalForwards,数据源D ...

  8. VB.NET Shared(共享)和 Static(静态)关键字的区别

    共享成员(Shared): VB.NET现在是支持真正的面向对象编程,可以继承.使用多态.共享成员 和静态成员. 共享成员就是在所有类和所定义派生类的实例之间共享的方法.属 性.字段和事件.所有使用类 ...

  9. uboot相关命令及用法

    进入uboot时,在命令行上敲“?” ,回车就会打印出在uboot里可用的命令: #??       - alias for 'help'base    - print or set address ...

  10. 创建一个Hello World模块

    这篇文章描述了怎样为Orchard建立一个非常小的模块,它只显示一个"Hello World"页面. 另一个模块[Module]的简单例子,你可以从这找到:Quick Start ...