温故知新ASP.NET 2.0(C#)(1) - MasterPage(母版页)

***主题与MasterPage模板切换实践指南 本文还有配套的精品资源,点击获取 简介:***中的MasterPage是一个布局工具,允许定义网站公共元素的统一布局,而内容页则提供具体内容。通过结合Theme,开发者能够轻松实现网站模板的切换,提升用户体验。本文介绍如何创建和切换MasterPage模板和Theme,实现网站视觉样式的动态更改,包括使用StyleSetting.css文件、设计主题管理模块、动态设置Pag... 阅读详情
[索引页]
[源码下载]



温故知新ASP.NET 2.0(C#)(1) - MasterPage(母版页)


作者: webabcd


介绍
母版页(MasterPage)就相当于模板页,挺简单的,没什么好说的。基于母版页的常用的功能有:母版页和内容页之间信息的传递,在内容页中用FindControl方法找到内容页中的控件等。另外,母版页是可以嵌套的。


关键
在内容页的头部加上母版页的强类型引用
<% --创建对母版页的强类型引用,并指定到母版页的虚拟路径-- %>
<% @ MasterType VirtualPath="~/MasterPage/MasterPage.master"  %>

1、内容页传递数据到母版页 - 母版页创建一个公共方法,然后内容页通过“Master.方法”来调用这个公共方法

2、母版页传递数据到内容页 - 母版页创建一个公共事件来传递数据,然后内容页处理这个事件

3、内容页中用FindControl方法找到内容页中的控件 - 用“Master.FindControl("ContentPlaceHolder1").FindControl("你要查找的控件ID")”来查找

4、嵌套母版页 - 说起来麻烦,看源码吧


示例
主母板页
Site.master
<% @ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="Site"  %>
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head  id ="Head1"  runat ="server" >
    
< title > 重新过一遍ASP.NET 2.0(C#) </ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
        
< div >
            
< asp:ContentPlaceHolder  ID ="ContentPlaceHolder1"  runat ="server" >
            
</ asp:ContentPlaceHolder >
        
</ div >
    
</ form >
</ body >
</ html >

次母板页
MasterPage/MasterPage.master
<% @ Master Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeFile
="MasterPage.master.cs" Inherits="MasterPage_MasterPage" 
%>
< asp:Content  ID ="Content1"  ContentPlaceHolderID ="ContentPlaceHolder1"  runat ="Server" >
    
< p >
        我是一个嵌套母版页
    
</ p >
    
< p >
        母版页中的内容
        
< asp:DropDownList  ID ="ddlMaster"  runat ="server"  DataSourceID ="XmlDataSource1"  DataTextField ="text"
            DataValueField
="value"  AutoPostBack ="True"  OnSelectedIndexChanged ="ddlMaster_SelectedIndexChanged" >
        
</ asp:DropDownList >< asp:XmlDataSource  ID ="XmlDataSource1"  runat ="server"  DataFile ="~/Config/DropDownListData.xml" >
        
</ asp:XmlDataSource >
    
</ p >
    
< p >
        内容页中的内容
        
< asp:ContentPlaceHolder  ID ="cph"  runat ="Server"   />
    
</ p >
</ asp:Content >

MasterPage/MasterPage.master.cs
using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;

public  partial  class  MasterPage_MasterPage : System.Web.UI.MasterPage
{
    
protected void Page_Load(object sender, EventArgs e)
    
{

    }


    
/// <summary>
    
/// 设置ddlMaster的选中索引
    
/// 这个方法由内容页调用
    
/// </summary>
    
/// <param name="index"></param>

    public void SetddlMaster(int index)
    
{
        ddlMaster.SelectedIndex 
= index;
    }


    
protected void ddlMaster_SelectedIndexChanged(object sender, EventArgs e)
    
{
        
// ddlMaster的选中索引改变后,激发SelectedIndexChanged_ddlMaster事件
        SelectedIndexChanged_ddlMaster(this, new CommandEventArgs(ddlMaster.SelectedItem.Text, ddlMaster.SelectedValue));
    }


    
// 声明一个公共时间事件,让内容页用
    public event CommandEventHandler SelectedIndexChanged_ddlMaster;
}


内容页
MasterPage/Test.aspx
<% @ Page Language="C#" MasterPageFile="~/MasterPage/MasterPage.master" AutoEventWireup="true"
    CodeFile
="Test.aspx.cs" Inherits="MasterPage_Test" Title="MasterPage测试" 
%>

<% --创建对母版页的强类型引用,并指定到母版页的虚拟路径-- %>
<% @ MasterType VirtualPath="~/MasterPage/MasterPage.master"  %>
< asp:Content  ID ="Content1"  ContentPlaceHolderID ="cph"  runat ="Server" >
    
< asp:dropdownlist  id ="ddlPage"  runat ="server"  datasourceid ="XmlDataSource1"  datatextfield ="text"
        datavaluefield
="value"  autopostback ="True"  onselectedindexchanged ="ddlPage_SelectedIndexChanged" >
    
</ asp:dropdownlist >
    
< asp:xmldatasource  id ="XmlDataSource1"  runat ="server"  datafile ="~/Config/DropDownListData.xml" >
    
</ asp:xmldatasource >
</ asp:Content >

MasterPage/Test.aspx.cs
using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;

public  partial  class  MasterPage_Test : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
// 在内容页用FindControl方法找到内容页中的控件
        DropDownList ddl = new DropDownList();
        ddl 
= Master.Master.FindControl("ContentPlaceHolder1").FindControl("cph").FindControl("ddlPage") as DropDownList;
        Master.Master.FindControl(
"ContentPlaceHolder1").FindControl("cph").Controls.Add(new LiteralControl("<br />内容页中的DropDownList的ClientID是:" + ddl.ClientID));

        
// 增加一个事件处理,该事件是在母版页定义的一个公共事件
        Master.SelectedIndexChanged_ddlMaster += new CommandEventHandler(Master_SelectedIndexChanged_ddlMaster);
    }


    
void Master_SelectedIndexChanged_ddlMaster(object sender, CommandEventArgs e)
    
{
        
// CommandEventArgs已经在母版页中的公共事件“SelectedIndexChanged_ddlMaster”中指定
        string selectedText = e.CommandName;
        
string selectedValue = e.CommandArgument.ToString();

        ddlPage.SelectedValue 
= selectedValue;
    }


    
protected void ddlPage_SelectedIndexChanged(object sender, EventArgs e)
    
{
        
// 调用母版页的方法
        Master.SetddlMaster(ddlPage.SelectedIndex);
    }

}



OK
[源码下载]
MasterPage 实验做得成果,有需要的话可以看看 功能一般 不复杂 立即下载

相关推荐

asp.net母板页(MasterPage)中设置主题(附程序详解)

ASP.Net 提供了主题皮肤这个东西,其实也就是换肤啦。可是网上有很多人说这个东西鸡肋,说这个东西在 .aspx页面中使用还行,却不能在母板页(MasterPage)中使用。是的,确实不能直接在MasterPage通过一个DDL的选择来切换整个网站的主题,因为 Page.Theme 这个属性都是在PreInit(){}中设置,否则报错,而MasterPage是不执行PreInit()

asp.net 母版页使用详解

母版页是VS2005中新引入的一个概念,它很好地实现界面设计的模块化,并且实现实现了代码的重用。它就像婚纱影楼中的婚纱模板,同一个婚纱模板可以给不同的新人用,只要把他们的照片贴在已有的婚纱模板就可以形成一张漂亮的婚纱照片,这样可以大大简化婚纱艺术照的设计复杂度。这里的母版页就像婚纱模

mybabyes的专栏 1万+

Master Page

Master Page used to customize global navigation

MasterPage(母版页)

母版页(MasterPage)就相当于模板页,挺简单的,没什么好说的。基于母版页的常用的功能有:母版页和内容页之间信息的传递,在内容页中用FindControl方法找到内容页中的控件等。另外,母版页是可以嵌套的。关键在内容页的头部加上母版页的强类型引用1、内容页传递数据到母版页 - 母版页创建一个公共方法,然后内容页通过“Master.方法”来调用这个公共方法2、母版页传递数据到内容页 - 母版页

7分想,3分做 309

C语言编写Picard迭代和牛顿迭代法

为了完成学校计算方法的作业,花了两个多星期将所有实验报告编写出来,看到同桌找代码的辛苦,优快云也没有这类代码,我只是一时兴起,想分享我写的代码与大家共飨,有错误还请多多指正,代码都不难,也是为了让优快云帮我保存下,我辛辛苦苦做出来的,倘若能给别人带来一丝一毫的帮助,我都万分荣幸。 1:什么是Picard迭代 先弄一个满足f(x) = 0的函数将其转化为x= 正在上传… 重新上传 取消 ...

mohenxiang的博客 4699

U8采购入库单CO接口开发实战:加载、新增与删除操作详解

本文详细解析了用友U8采购入库单CO接口的开发实战,重点介绍了加载、新增与删除三大核心操作的实现方法。通过C#代码示例和实际项目经验,帮助开发者高效处理采购入库单,提升企业供应链管理效率。文章还涵盖了环境配置、异常处理、性能优化等关键技巧,适合U8二次开发人员参考。

weixin_33462927的博客 373

ASP.NET 2.0 之 Master Page 学习笔记

如何使用 MasterPage 1. 创建 MasterPage,后缀名 .master, 如 x.master.    其中用 定义空位。如:         2. 创建内容页面。    在 NewItem 对话框里选择 "select master page", 选择上一步创建的 MasterPage.    产生的代码里,

木野狐@优快云 Blog 760

RK3588平台-ES8388音频驱动调试与设备树配置实战

本文详细解析了在RK3588平台上调试ES8388音频驱动的实战过程。内容涵盖Linux音频驱动的三层架构(Machine、Platform、Codec),并重点提供了设备树(DTS)的完整配置示例,包括I2C节点、声卡节点及音频路由设置。文章还分享了驱动加载验证、amixer调试命令以及常见问题(如无声、变调)的排查思路,旨在帮助开发者快速完成RK3588与ES8388的音频系统集成。

mango的博客 806

Web开发学习心得7——MasterPage的实现原理

MasterPage是Asp.net2.0引入的一个非常实用的特性,怎么用,我想不用我说,基本上大家都会,这里要讲的是,它是如何实现的。 在深入源代码去探索MasterPage之前,我以为MasterPage的实现应该是比较复杂的,也一直纳闷为什么MasterPage类会继承于UserControl类,感觉这两者好像差得很远。昨天晚上,我专门抽出时间,阅读了部分与Mas...

weixin_34043301的博客 269

如何对TBSS的结果进行统计学的分析,已完成置换检验,如何在最终的TBSS输出结果提取除具体值及如何做进一步相关性分析??

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 1439

规控面试常见问题

规划控制算法常见问题。

每天进步一点点。 982

Asp.net 2.0专题之一:MasterPage

  Asp.net 2.0专题之一:MasterPage 由于.net 2.0 很快就要发布了,大家都会面临一个IDE环境迁移(vs.net 2005)和.net 2.0新特性的应用问题,在接下来的一些文章,我会做一些asp.net 2.0的专题,写这些文章的初衷是想为很多分析Community Server的Coder们提供一个在我能力范围内的帮助,让大家看到一些新技术是如何诞生和被应用的...

weixin_34126215的博客 238

C2f-DCN模块详解:可变形卷积与特征融合的完美结合

C2f模块作为YOLOv8的核心创新,代表了目标检测特征提取模块设计的最新进展。通过精简的卷积配置(仅2个基础卷积)、高效的特征重用设计(部分通道分割复用)、以及深层语义与浅层细节的协同建模能力,C2f在结构设计和性能表现上全面超越了前代的C3模块。与C3K2、C3K等变体相比,C2f在遮挡和密集环境下的检测鲁棒性更优,而C3K2和C3K分别在高速检测和多尺度检测方面有专门优化。这种差异化设计反映了YOLO系列模型向场景化、专业化发展的趋势。从设计原理角度看,C2f的核心优势在于其多路径梯度流动优化和。

浩瀚之水的专栏 378

温故知新ASP.NET 2.0(C#)系列文章索引

[源码下载]温故知新ASP.NET 2.0(C#)系列文章索引作者:webabcd介绍温故知新ASP.NET 2.0(C#)系列文章索引:MasterPage(母版页)、Themes(主题)、SiteMap(站点地图)、Cache&SqlCacheDependency(缓存和SqlCacheDependency特性)、Localization(本地化,多语言)、Membership&Rol

johncools的博客 2418

【知识分享】IBIS 建模指南 04

文章详细阐述了将缓冲器数据转换为IBIS模型格式的核心步骤与规范要求。主要内容包括:1)IBIS文件三大结构(文件头信息、组件引脚映射、缓冲器行为描述)及其关键词定义;2)四种关键I-V表(上下拉、电源/地钳位)的数据处理规则,强调需避免重复计算效应;3)切换特性描述方法,指出V-T波形表优于Ramp数据的三大优势;4)差分缓冲器通过[DiffPin]关键词实现建模的特殊流程。文中特别强调数据外推校验、参考电压基准转换、工艺角数据排序等易错环节的处理技巧,为创建符合IBIS 4.0规范的精确模型提供指导。

一只豌豆象的博客 2050

8、Windows 部署ollama

一个本地运行大模型的集成框架,目前主要针对主流的LLaMA架构的开源大模型设计,通过将模型权重、配置文件和必要数据封装进由Modelfile定义的包中,从而实现大模型的下载、启动和本地运行的自动化部署及推理流程。此外,Ollama内置了一系列针对大模型运行和推理的优化策略,目前作为一个非常热门的大模型托管平台,已被包括LangChain、Taskweaver等在内的多个热门项目高度集成。

Andy_shenzl的博客 1131

转 温故知新ASP.NET 2.0(C#)系列文章索引

 温故知新ASP.NET 2.0(C#)系列文章索引作者:webabcd介绍温故知新ASP.NET 2.0(C#)系列文章索引:MasterPage(母版页)、Themes(主题)、SiteMap(站点地图)、Cache&SqlCacheDependency(缓存和SqlCacheDependency特性)、Localization(本地化,多语言)、Membership&RoleMana

Many a little makes a mickle. 429

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

温故知新ASP.NET 2.0(C#)系列

作者:webabcd 来源:博客园 时间:2008-09-04 温故知新ASP.NET 2.0(C#)(1) - MasterPage(母版页) (2008-09-04) 温故知新ASP.NET 2.0(C#)(2) - Themes(主题) (2008-09-04) 温故知新ASP.NET 2.0(C#)(3) - SiteMap(站点地图) (2008...

weixin_30919571的博客 132

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Web站点风格切换的实现

引言Web站点的风格切换是很常见、也很受大家欢迎的功能,比如大家熟知的博客园就提供了几十款风格模板供大家选择。在Asp.Net中,我们可以通过模板页master page和主题theme来实现网站的风格切换,但是.Net提供的默认设置不够强大和灵活。本文将向大家介绍如何在.Net提供的方法上进行改进和扩展,以提供更加强大的网站风格切换功能。效果预览:http://www.tracefact.net

ak47yky3的专栏 466

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Petshop 4.0学习-MasterPage.master文件

虽然母版页和内容页功能强大,但是其创建和应用过程并不复杂。本节和下一节将以创建如图1所示示例为例,向读者详细介绍,使用Visual Stuido 2005创建母版页和内容页的方法以及相关知识。本节的重点是创建母版页的方法。 母版页中包含的是页面公共部分,即网页模板。因此,在创建示例之前,必须判断哪些内容是页面公共部分,这就需要从分析页面结构开始。图1所示显示的是一 个页面截图。在下文...

weixin_30952535的博客 235

Page Title=““ Language=“C#“ MasterPageFile=“~/Site.Master“

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"CodeBehind="Default.aspx.cs" Inherits="AppUI.Default" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> </asp:Content> <asp:Co

xiexuzhao的专栏 698
上一篇: [翻译]ASP.NET AJAX调用Web Service
下一篇: 温故知新ASP.NET 2.0(C#)(2) - Themes(主题)
webabcd
博客等级 码龄17年 28粉丝 911原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值