ASP.NET母版页

4.2母版页
4.2.1 母版页概述
用户在设计网站时经常会遇到多个网页部分内容相同的情况,例如:具有网关和内容都相同的标题栏、页脚栏、导航栏等,如果每个网页都设计一次,不仅重复劳动而且非常繁琐,此时,使用母版页可以很好地解决这个问题。
母版页是指可以在同一站点的多个页面间共享使用的特殊网页。用户可以使用母版页建立一个通用布局,或者使用母版页,在多个页面中,显示公共的内容。
母版页的使用与普通的aspx页面类似,可以在其中放置任何HTML控件、Web服务器控件或图形等,不同之处如下:
(1) 母版页将普通页面的@Page指令,替换成了@Master指令。
(2) 母版页的扩展名为.master,因此,不能被浏览器直接查看。
(3) 母版页中包含若干个ContentPlaceHolder控件,是预留出来的显示内容页面的区域。
(4) 母版页必须在被内容页引用之后才能进行显示。
(5) 母版页仅仅是一个页面模板,不能直接运行。
引用母版页的Web窗体被称为内容页。
在内容页中,母版页中的ContentPlaceHolder控件预留的可编辑区,会自动替换为Content控件,在Content控件中,开发人员可以自由设计,而在母版页中定义的公共内容将自动显示在内容页,不可以被修改。
当用户运行一个引用母版页的内容页时,服务器按照如下步骤将页面发送给用户:
(1) 用户通过输入内容页的URL来请求某页面。
(2) 服务器读取该页面中的@Page指令,如果该指令引用了一个母版页,则读取该母版页。如果是第一次请求这两个页,则两个页都要进行编译。
(3) 服务器将各Content控件的内容合并到母版页相应的ContentPlaceHolder控件中。
(4) 在浏览器中呈现合并后的完整页面。
4.2.2 创建母版页
(1)右击网站名称-添加-添加新项-搜索“母版页”-输入名称-添加
在这里插入图片描述

(2)添加完成之后,系统自动切换到母版页的源视图
在这里插入图片描述

(3) 从上图可知,母版页创建成功之后,系统在新建的母版页里,自动创建了两个ContentPlaceHolder控件,ID分别是head和ContentPlaceHolder1
(4) 开发人员可以在源视图或者设计视图中添加母版页的内容,但是,添加的内容不能出现在ContentPlaceHolder控件中,因为该区域是为内容页预留的区域。
4.2.3 创建内容页
1、创建内容页的方法
母版页不能单独在浏览器中预览显示效果,必须通过引用了该母版页的内容页进行查看。
在内容页中,母版页中的ContentPlaceHolder控件预留的可编辑区,会自动替换为Content控件,内容页的所有内容必须包含在Content控件内,创建内容页就是在母版页的可编辑区中填充内容。
创建内容页的方法有两种:
(1) 方法一
右击网站名称-添加-添加新项-选择 Web窗体 并选中右下角的“选择母版页”复选框(但是我们正在使用的VS版本没有这个复选框)
在这里插入图片描述

(2) 方法二
在VS的解决方案资源管理器中,右击要引用的母版页的名称,在弹出的快捷菜单中选择“添加内容页”命令,就可以在网站中添加一个引用该母版页的空白内容页。
在这里插入图片描述在这里插入图片描述

2、内容页与普通Web窗体页的区别
在内容页创建好之后,系统会自动切换到内容页的源视图。
内容页与普通Web窗体页有所不同,主要体现在一下几个方面:
(1) 在@Page指令中,增加了Title=””和MasterPageFile="~/Site1.Master"两个指令。
在这里插入图片描述

(2) 在内容页中,不包括<html>、<head>、<title>、<body>、<form>等Web元素,这些元素被放置在母版页中。
在这里插入图片描述在这里插入图片描述

(3) 在内容页中包含若干个asp:Content…和</asp:Content>标记,内容页的所有元素都包含在Content控件中。
3、应用举例
案例:母版页的应用
设计一个母版页,然后基于这个母版页创建一个内容页。
(1) 创建一个空网站。在站点根目录下创建一个名为images的文件夹,把准备好的背景图片(.jpg)放入其中。
在这里插入图片描述

(2) 右击网站名称-添加-添加新项-母版页-改名(MasterPage.master)
在这里插入图片描述

(3) 切换到MasterPage.master的设计视图,在页面中应用一个2X2的表格布局
在这里插入图片描述

(4) 把第一行合并,设置其背景图片为.jpg;在第一行放入一个Label控件,设置其Text属性为“母版页的使用”;在第二行的左边放入一个Calender控件,选择一种自动套用格式;把系统自动创建的ID为ContentPlaceHolder1的占位符移到第二行的右边。(我不会设置背景图)
在这里插入图片描述

(5) 在解决方案资源管理器中,右击母版页MasterPage.master,在弹出的快捷菜单中选择“添加内容页”命令,添加一个名为Default.aspx的内容页。
(6) 切换到内容页Default.aspx的设计视图,在ContentPlaceHolder控件中,输入一些文字,运行效果图如下所示:
在这里插入图片描述

4.2.4 从内容页访问母版页的控件
1、从内容页中访问母版页控件的语法格式
在实际应用中,经常要通过后台代码从内容页中访问母版页的控件,这种访问一般使用FindControl()方法,其语法格式如下:
在这里插入图片描述

2、应用举例
案例:使用FindControl()方法访问母版页
在母版页中包含一个Label控件,在页面加载时显示“欢迎您!”。在内容页中包含两个文本框和一个“登陆”按钮,文本框用来接收用户登录时输入的用户名和密码。用户在内容页登陆成功后,母版页中的Label控件的内容增加用户在登录时输入的用户名。
(1) 创建空网站
(2) 添加母版页(MasterPage.master)
(3) 切换到母版页进行页面设计,添加一个Label控件,ID采用默认名“Label1”(PS:好像还要加上一个ContentPlaceHolder控件,书上没给,但是不加的话没法进行第(6)步)
(4) 切换到母版页的后台代码页面,编辑Page_Load事件
在这里插入图片描述

(5) 添加内容页(Default.aspx)
(6) 切换到内容页的设计视图,在其ContentPlaceHolder控件区域放置一个4x2的表格用于页面布局。在表格中添加两个文本框控件;再添加一个Button控件,其Text属性修改为登陆
在这里插入图片描述

(7) 切换到内容页的后台代码,编写Button1_Click事件
在这里插入图片描述

(8) 运行内容页
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

母版页和内容页:
内容页(扩展名是.aspx),母版页的扩展名为.master
母版页其页面指令以@Master来标识;内容页其页面指令以@Page来标识

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值