zoukankan      html  css  js  c++  java
  • asp.net访问母版页控件方法

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

  • 相关阅读:
    MYSQL的基本语法
    如何实现SQL Server临时表的创建?
    计算时间 相加,相减 的方法,TimeSpan 数据转换
    sql server 拆分字符串,拆分两次(:和;)
    SQL group by分组查询(转)
    转: sqlserver常用sql语句,更改字段,建立唯一键,多个字段去重复等
    asp.net,CSS设置<TableListView>的title居左,居左,居上
    linq to sql ,将var 类型转为 IList 类型
    Open XML的上传、下载 、删除 ......文件路径
    C#操作office进行Excel图表创建,保存本地,word获取
  • 原文地址:https://www.cnblogs.com/erictanghu/p/3517527.html
Copyright © 2011-2022 走看看