母版和Web用户控件课件_第1页
母版和Web用户控件课件_第2页
母版和Web用户控件课件_第3页
母版和Web用户控件课件_第4页
母版和Web用户控件课件_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章Web页面、母版和Web用户控件第八章Web页面、母版和Web用户控件目标了解ASP.NET页的结构掌握Page对象的各种事件和属性理解代码隐藏的概念Web应用程序布局母版页用户控件2目标了解ASP.NET页的结构2默认的Web应用程序文件创建的文件说明WebForm1.aspx和WebForm1.aspx.cs文件它们组成一个单独的Web窗体页。.aspx文件包含Web窗体页的可视化元素,而.aspx.cs则包含用于Web窗体页的代码隐藏类AssemblyInfo.cs项目信息文件,包含有关某一个项目中程序集的元数据Web.config

存储应用程序配置信息Global.asax和Global.cs文件用于处理应用程序级事件的可选文件Styles.css

级联样式表文件3默认的Web应用程序文件创建的文件说明WebForm1.8.1Page类--用户界面设计窗口控件放置在设计窗口中的控件浏览器窗口中的用户界面48.1Page类--用户界面设计窗口控件放置在设计窗口ASP.NET页5ASP.NET页5Page类Page类用于表示一个.aspx文件,也称为Web窗体页

每个页面都派生自Page类,并继承这个类公开的所有方法和属性Page类的成员位于System.Web.UI命名空间中

6Page类Page类用于表示一个.aspx文件,也称为脚本部分脚本部分服务器端脚本客户端脚本由服务器执行由浏览器执行C#VBJscriptCSS7脚本部分脚本部分服务器端脚本客户端脚本由服务器执行客户端脚本客户端脚本是页面的一部分,当用户请求页面时,就将这些脚本发送至浏览器客户端脚本可以:在将某个页面加载至浏览器中时,改变此页面的外观验证用户在窗体中输入的数据,将通过验证的数据发送至服务器当触发按钮的点击事件时,在浏览器中显示相关信息8客户端脚本客户端脚本是页面的一部分,当用户请求页面时,就将服务器端脚本服务器脚本也是页面的一部分,但它不发送至浏览器,而是在请求页面之后和在回送至浏览器之前由服务器处理这些脚本代码可包含在服务器端的<script>代码声明块中,也可包含在<%%>显示块中ASP.NET支持多种语言编写的用于运行时的服务器端代码

服务器端代码声明块必须具有runat="server"属性<scriptrunat="server"[language="C#"]

src="scriptfile"/>

9服务器端脚本服务器脚本也是页面的一部分,但它不发送至浏览器代码隐藏3-1.aspx文件显示内容HTML,服务器控件静态文本等.aspx.cs文件应用程序逻辑

这就是代码隐藏分离JavaScriptCSS10代码隐藏3-1.aspx文件.aspx.cs文件这就代码隐藏3-2

<%@PageInherits="_Default"CodeFile="Default.aspx.cs"%><html><head><title>WebForm实例</title></head><body>

<formRunat="Server">

<asp:ButtonText=“单击此处!"OnClick="btnSubmit_Click"Runat="Server"/>

<p>

<asp:LabelID="lblMessage"Runat="Server"/>

</form>

</body></html>

表示文件..(Default.aspx)代码隐藏文件在代码隐藏文件中定义的事件11代码隐藏3-2

<%@PageInherits="_代码隐藏3-3代码隐藏文件(Default.aspx.cs)usingSystem;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;

publicpartialclass_Default:System.Web.UI.PageprotectedSystem.Web.UI.WebControls.LabellblMessage;

ProtectedvoidbtnSubmit_Click(Objectsender,EventArgse){{lblMessage.Text=“您好!"}

}继承自Page类从表示文件调用Buttonclick事件单击按钮后执行的功能12代码隐藏3-3代码隐藏文件(Default.aspx.代码隐藏的工作原理代码隐藏的原则是为代码创建一个类,并从ASP.NETPage对象中继承该类在上节中用于表示内容的页面Default.aspx就继承自此代码隐藏文件

表示页继承了代码隐藏文件的所有属性、方法和事件

代码隐藏文件继承自Page类,而表示文件继承自代码隐藏文件因为存在继承的这种层次结构,所以代码隐藏文件中含有Page类的所有属性、方法和事件,而所有这些属性、方法和事件也都存在于表示文件13代码隐藏的工作原理代码隐藏的原则是为代码创建一个类,并从AASP.NET页ASP.NET页文件的扩展名为.aspx可在任何浏览器中向用户显示信息,因为它们可与任何浏览器或移动设备都兼容与.NET公共语言运行库支持的任何语言都兼容

使用大量控件快速创建丰富的用户界面

使用服务器端代码实现应用程序逻辑VisualStudio提供了强大的快速应用程序开发工具,用于设计用户窗体并对其进行编程14ASP.NET页ASP.NET页文件的扩展名为.aspPage对象的事件ASP.NET页框架在不同的阶段处理Web窗体页时都可能引发事件,并执行响应事件的事件处理程序事件处理程序实际上就是一个子程序,执行任何给定事件的相关代码事件AbortTransactionInitCommitTransactionLoadDataBindingPreRenderDisposedUnloadError15Page对象的事件ASP.NET页框架在不同的阶段处理Web窗体页的生命周期初始化页面

阶段引发的事件Page_Init

加载页面验证事件处理页面卸载Page_LoadValidateFormeventhandlerPage_Unload页面显示之前Page_PreRender在页面处理的某些特定阶段,页面会自动触发一些事件。而与服务器控件相关联的其他事件则在服务器端触发并得到处理16Web窗体页的生命周期初始化页面阶段引发的事件PPage_Load事件在加载页面时会触发Page_Load事件ASP.NET将自动调用Page_Load子程序,并执行其中的代码privatevoidPage_Load(objectsender,System.EventArgse){

lblDate.Text=Convert.ToString(date1.DayOfWeek);}从此处调用Page_Load事件只要加载页面,就会执行Page_Load事件内的代码17Page_Load事件在加载页面时会触发Page_LoaPage.IsPostBack属性2-1利用Page对象的IsPostBack属性,可以检查.aspx页是否为传递回服务器的页面只有在首次加载页面时,Page.IsPostBack属性才用于页面的Load事件中以执行代码如果Page.IsPostBack属性值为False,则此页面为首次加载用户界面18Page.IsPostBack属性2-1利用Page对服务器服务器域名URL,资源的名称响应这是HTTP请求这是HTTP响应19服务器服务器域名URL,资源的名称www.google.coPage.IsPostBack属性2-2

privatevoidPage_Load(objectsender,System.EventArgse){if(!Page.IsPostBack) { lblTime.Text= System.DateTime.Now.ToString(); }}privatevoidbtnSubmit_Click(objectsender,System.EventArgse){

lblMessage.Text="请确定您填写的信息:"+ txtName.Text+""+txtAge.Text+" "+txtHabbit.Text;}

Page_Load事件如果页面为首次加载,则Page.IsPostBack属性的值是False,并显示日期和时间单击“提交”按钮后,日期和时间都将保持不变20Page.IsPostBack属性2-2

Page_Web应用程序布局概述复杂的Web应用程序需要一致的页面布局传统的解决方案一般包括下列几种:使用框架:缺点是需要浏览器支持。使用表格:缺点是影响性能。使用用户自定义控件:缺点是增加了程序开发的复杂性。21Web应用程序布局概述复杂的Web应用程序需要一致的页面布页面典型布局栏式结构简单实用、条理分明、格局清晰严谨、适合信息量大的页面区域结构页面精美、适合信息量较少的页面22页面典型布局栏式结构22页面布局技术页面布局技术TableDIV+CSS简单、方便,现已较少用于布局更加美观在页面展示和浏览速度上有很大优势注意:Table方式的布局越来越少,并不代表Table标签过时,在DIV布局的页面上,常常会有Table的表格。23页面布局技术页面布局TableDIV+CSS简单、方便,母版页母版页OOP第8章->Page联系方式内容内容页OOP第8章->Page联系方式内容合并的页面24母版页母版页OOP第8章->Page联系方式内容内容页OO母版页概述使用ASP.NET的母版页,可以为Web站点创建统一的布局。母版页定义Web页面的外观和标准行为;各内容页定义Web页面要显示的特殊内容。当用户请求内容页时,这些内容页与母版页合并一起输出。母版页功能可以为站点定义公用的结构和界面元素,如页眉、页脚或导航栏。25母版页概述使用ASP.NET的母版页,可以为Web站点创建统母版页的优势有利于站点修改和维护,降低开发人员的工作强度提供高效的内容整合能力有利于实现页面布局母版页应用于统一的布局26母版页的优势有利于站点修改和维护,降低开发人员的工作强度母版定义母版页母版页为具有扩展名.master的ASP.NET文件。母版页由特殊的@Master指令识别。例如: <%@MasterLanguage=“C#"%>母版页可以包含静态文本、HTML元素、服务器控件以及代码。母版页还可以包含一种特殊类型的控件:ContentPlaceHolder控件。ContentPlaceHolder定义了一个母版页呈现区域,可由与母版页关联的页的内容来替换。ContentPlaceHolder还可以包含默认内容。27定义母版页母版页为具有扩展名.master的ASP.NET代码分析母版页代码内容页代码<div>

网上花店

<asp:contentplaceholderid="cphContent"runat="server"></asp:contentplaceholder>联系我们</div><%@PageLanguage="C#"MasterPageFile="~/MasterPage.master"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"Title="UntitledPage"%><asp:ContentID="Content1"ContentPlaceHolderID="cphContent"Runat="Server"></asp:Content>内容块的id,用来确定内容块的放置的区域对应的母版页的路径对应于母版页的内容块28代码分析母版页代码<div><%@PageLanguag在内容页中使用母版页右击“解决方案资源管理器”项目名称,在弹出的菜单中选择“添加新项”命令,弹出“添加新项”对话框。在“添加新项”对话框中,选择“VisualC#”为该窗体页的语言,选择“Web内容窗体”选项;给该控件一个合适的命名,一定要以“.aspx”为后缀名。单击“添加”按钮,将会打开“选择母版页”对话框,在“文件夹内容”列表中选择需要引用的母版页文件,然后单击“确定”按钮。29在内容页中使用母版页右击“解决方案资源管理器”项目名称,在弹使用演示演示母版页的使用创建母版页设计样式添加内容页添加内容页有两种方式:1、在母版页任意位置右键,点击添加内容页;2、在解决方案资源管理器上新建新项,在生成aspx页面时勾选“选择母版页”30使用演示演示母版页的使用添加内容页有两种方式:30用户控件概述在一个大系统中,有时候会只有几个*.aspx页面,其余的都是做成*.ascx页面,如网站的导航、网页的头部和底部。这样可以增强页面之间的藕合性。将一个用户控件*.ascx都作为一个独立的功能块。需要修改某一功能时,只需要修改相应的*.ascx文件。31用户控件概述在一个大系统中,有时候会只有几个*.aspx页面用户控件用户控件的扩展名为“ascx”,与“aspx”在结构上相似,是指页面中加载的功能模块。只是用户控件不能单独作为页面运行,必须嵌入到aspx页面中,或者嵌入到其他用户控件中使用。32用户控件用户控件的扩展名为“ascx”,与“aspx”在结构用户控件注册<%@Registersrc="WebUserControl.ascx"tagname="WebUserControl"tagprefix="uc1"%><uc1:WebUserControlID="WebUserControl1"

runat="server"/>33用户控件注册<%@Registersrc="WebUs将Web窗体页转化为用户控件用户控件比Web窗体页面少了<html>、<body>和<form>等元素。知道了用户控件和Web窗体页面的差别,就可以通过添加、删除和修改相应的元素,并且将aspx页面中的@Page指令变成了@Control指令,实现Web窗体页面和用户控件的相互转化。34将Web窗体页转化为用户控件用户控件比Web窗体页面少了<h页面指令@Page定义ASP.NET页解析器和编译器所使用的特定页面的属性,只可包括在.aspx文件中@Control定义ASP.NET页解析器和编译器所使用的特定用户控件的属性,只可包括在.ascx文件中@Import在页面或用户控件中显式地引入一个名称空间@Implements允许在页面或用户控件中实现一个.NET接口@Register用于注册页面中的用户控件和自定义服务器控件以便使用它们@Assembly将程序集引入到当前页面或用户控件中,以便它所包含的类和接口能够适用于页面中的代码@OutputCache对页面或用户控件在服务器上如何进行高速缓存进行控制@Reference用来识别当前页面在运行时应该动态编译和链接的页面或用户控件

ASP.NET页面中通常包含一些类似<%@%>这样的代码35页面指令@Page定义ASP.NET页解析器和编译@Page指令@Page指令定义了ASP.NET页解析器和编译器使用的特定于页面的属性它用于在处理和编译某页面时配置与此页面相关的属性每个ASPX页只能有一个@Page指令@Page指令的语法如下:

<%@Pageattribute="value"

[attribute="value"...]%>36@Page指令@Page指令定义了ASP.NET页@Page指令的属性<%@PageLanguage="c#"AutoEventWireup=“true"MasterPageFile="~/Site.Master"

Codebehind="ContentPage.aspx.cs"Inherits="_01.ContentPage"

ContentType="text/xml"%>指定在编译时和页面的代码声明块中使用的语言指示能否自动处理页面的事件指定继承的母版页指定编译的文件名称,此文件含有与此页面关联的类指定由页面继承的代码隐藏类将响应的HTTP内容类型作为一个标准的MIME类型

37@Page指令的属性<%@PageLanguage=@Control指令2-1用于定义

ASP.NET页解析器和编译器所使用的用户控件(.ascx

文件)的属性一个.ascx文件中只可包含一个@Control指令

@Control指令的语法如下:

<%@Controlattribute="value"[attribute="value"...]%>38@Control指令2-1用于定义ASP.NET页@Control指令2-2@Control指令的属性:EnableViewState属性用于启用/禁用跨HTTP请求的视图状态其他属性(如Language、AutoEventWireup、Inherits、ClassName、Debug、Description和CompilerOptions等)与@Page指令的属性相似@Control指令的示例:<%@ControlLanguage=“C#"EnableViewState="false"%>39@Control指令2-2@Control指令的属性@Import指令@Import指令用于在页面中导入一个名称空间,此名称空间既可是MS.NetFramework中已定义的名称空间,也可是自定义的名称空间导入名称空间允许使用所有包含在该名称空间中的类和接口@Import指令只有一个属性namespace,它指定要导入的命名空间,如下所示:<%@

Import

namespace="System.Web.Mail"

%>40@Import指令@Import指令用于在页面中导入@Implements指令@Implements指令可用于在ASP.NET页中实现.NetFramework接口在Web窗体页中实现接口时,必须实现该接口中声明的所有成员,可在代码声明块的<script>元素和</script>之间声明其属性、事件和方法每一个.aspx页只可有一个@Implements指令@Implements指令的语法如下:<%@Implementsinterface="ValidInterfaceName"%>41@Implements指令@Implements指令可用@Register指令@Register指令用于注册页面中的用户控件和自定义服务器控件以便可使用它们当创建一个自定义控件或用户控件时,可以通过将属性添加到页面的标签中把它们传送给控件

@Register指令的语法如下所示:<%@Registertagprefix="tagprefix“ Namespace="namespace" Src=“pathname"%>42@Register指令@Register指令用于注册页@Assembly指令@Assembly指令用于直接引用一个程序集,以便于它所包含的类和接口能够适用于页面中的代码@Assembly指令的语法如下:<%@AssemblyName="assemblyname"%><%@AssemblySrc="pathname"%>43@Assembly指令@Assembly指令用于直接@Reference指令@Reference指令用来识别当前页面在运行时应动态编译和链接的页面或控件,允许在运行时间将用户控件动态添加到页面中@Reference指令的语法如下:<%@Referencepage|control="pathtofile"%>44@Reference指令@Reference指令用总结ASP.NET页文件是含有将在Web服务器上执行代码的文件。其扩展名是.aspx或.ascxASP.NET代码隐藏文件使开发人员可以在C#或VisualBasic.NET类中编写控制它们的页的逻辑,这样可与HTML代码清楚地分离开来ASP.NET页面中使用的脚本:服务器端脚本、客户端脚本事件处理程序实际上就是一个子程序,执行任何给定事件的相关代码在页面加载时引发Page_Load事件Page.IsPostback属性用于检查页面是否为首次加载45总结ASP.NET页文件是含有将在Web服务器上执行第八章Web页面、母版和Web用户控件第八章Web页面、母版和Web用户控件目标了解ASP.NET页的结构掌握Page对象的各种事件和属性理解代码隐藏的概念Web应用程序布局母版页用户控件47目标了解ASP.NET页的结构2默认的Web应用程序文件创建的文件说明WebForm1.aspx和WebForm1.aspx.cs文件它们组成一个单独的Web窗体页。.aspx文件包含Web窗体页的可视化元素,而.aspx.cs则包含用于Web窗体页的代码隐藏类AssemblyInfo.cs项目信息文件,包含有关某一个项目中程序集的元数据Web.config

存储应用程序配置信息Global.asax和Global.cs文件用于处理应用程序级事件的可选文件Styles.css

级联样式表文件48默认的Web应用程序文件创建的文件说明WebForm1.8.1Page类--用户界面设计窗口控件放置在设计窗口中的控件浏览器窗口中的用户界面498.1Page类--用户界面设计窗口控件放置在设计窗口ASP.NET页50ASP.NET页5Page类Page类用于表示一个.aspx文件,也称为Web窗体页

每个页面都派生自Page类,并继承这个类公开的所有方法和属性Page类的成员位于System.Web.UI命名空间中

51Page类Page类用于表示一个.aspx文件,也称为脚本部分脚本部分服务器端脚本客户端脚本由服务器执行由浏览器执行C#VBJscriptCSS52脚本部分脚本部分服务器端脚本客户端脚本由服务器执行客户端脚本客户端脚本是页面的一部分,当用户请求页面时,就将这些脚本发送至浏览器客户端脚本可以:在将某个页面加载至浏览器中时,改变此页面的外观验证用户在窗体中输入的数据,将通过验证的数据发送至服务器当触发按钮的点击事件时,在浏览器中显示相关信息53客户端脚本客户端脚本是页面的一部分,当用户请求页面时,就将服务器端脚本服务器脚本也是页面的一部分,但它不发送至浏览器,而是在请求页面之后和在回送至浏览器之前由服务器处理这些脚本代码可包含在服务器端的<script>代码声明块中,也可包含在<%%>显示块中ASP.NET支持多种语言编写的用于运行时的服务器端代码

服务器端代码声明块必须具有runat="server"属性<scriptrunat="server"[language="C#"]

src="scriptfile"/>

54服务器端脚本服务器脚本也是页面的一部分,但它不发送至浏览器代码隐藏3-1.aspx文件显示内容HTML,服务器控件静态文本等.aspx.cs文件应用程序逻辑

这就是代码隐藏分离JavaScriptCSS55代码隐藏3-1.aspx文件.aspx.cs文件这就代码隐藏3-2

<%@PageInherits="_Default"CodeFile="Default.aspx.cs"%><html><head><title>WebForm实例</title></head><body>

<formRunat="Server">

<asp:ButtonText=“单击此处!"OnClick="btnSubmit_Click"Runat="Server"/>

<p>

<asp:LabelID="lblMessage"Runat="Server"/>

</form>

</body></html>

表示文件..(Default.aspx)代码隐藏文件在代码隐藏文件中定义的事件56代码隐藏3-2

<%@PageInherits="_代码隐藏3-3代码隐藏文件(Default.aspx.cs)usingSystem;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;

publicpartialclass_Default:System.Web.UI.PageprotectedSystem.Web.UI.WebControls.LabellblMessage;

ProtectedvoidbtnSubmit_Click(Objectsender,EventArgse){{lblMessage.Text=“您好!"}

}继承自Page类从表示文件调用Buttonclick事件单击按钮后执行的功能57代码隐藏3-3代码隐藏文件(Default.aspx.代码隐藏的工作原理代码隐藏的原则是为代码创建一个类,并从ASP.NETPage对象中继承该类在上节中用于表示内容的页面Default.aspx就继承自此代码隐藏文件

表示页继承了代码隐藏文件的所有属性、方法和事件

代码隐藏文件继承自Page类,而表示文件继承自代码隐藏文件因为存在继承的这种层次结构,所以代码隐藏文件中含有Page类的所有属性、方法和事件,而所有这些属性、方法和事件也都存在于表示文件58代码隐藏的工作原理代码隐藏的原则是为代码创建一个类,并从AASP.NET页ASP.NET页文件的扩展名为.aspx可在任何浏览器中向用户显示信息,因为它们可与任何浏览器或移动设备都兼容与.NET公共语言运行库支持的任何语言都兼容

使用大量控件快速创建丰富的用户界面

使用服务器端代码实现应用程序逻辑VisualStudio提供了强大的快速应用程序开发工具,用于设计用户窗体并对其进行编程59ASP.NET页ASP.NET页文件的扩展名为.aspPage对象的事件ASP.NET页框架在不同的阶段处理Web窗体页时都可能引发事件,并执行响应事件的事件处理程序事件处理程序实际上就是一个子程序,执行任何给定事件的相关代码事件AbortTransactionInitCommitTransactionLoadDataBindingPreRenderDisposedUnloadError60Page对象的事件ASP.NET页框架在不同的阶段处理Web窗体页的生命周期初始化页面

阶段引发的事件Page_Init

加载页面验证事件处理页面卸载Page_LoadValidateFormeventhandlerPage_Unload页面显示之前Page_PreRender在页面处理的某些特定阶段,页面会自动触发一些事件。而与服务器控件相关联的其他事件则在服务器端触发并得到处理61Web窗体页的生命周期初始化页面阶段引发的事件PPage_Load事件在加载页面时会触发Page_Load事件ASP.NET将自动调用Page_Load子程序,并执行其中的代码privatevoidPage_Load(objectsender,System.EventArgse){

lblDate.Text=Convert.ToString(date1.DayOfWeek);}从此处调用Page_Load事件只要加载页面,就会执行Page_Load事件内的代码62Page_Load事件在加载页面时会触发Page_LoaPage.IsPostBack属性2-1利用Page对象的IsPostBack属性,可以检查.aspx页是否为传递回服务器的页面只有在首次加载页面时,Page.IsPostBack属性才用于页面的Load事件中以执行代码如果Page.IsPostBack属性值为False,则此页面为首次加载用户界面63Page.IsPostBack属性2-1利用Page对服务器服务器域名URL,资源的名称响应这是HTTP请求这是HTTP响应64服务器服务器域名URL,资源的名称www.google.coPage.IsPostBack属性2-2

privatevoidPage_Load(objectsender,System.EventArgse){if(!Page.IsPostBack) { lblTime.Text= System.DateTime.Now.ToString(); }}privatevoidbtnSubmit_Click(objectsender,System.EventArgse){

lblMessage.Text="请确定您填写的信息:"+ txtName.Text+""+txtAge.Text+" "+txtHabbit.Text;}

Page_Load事件如果页面为首次加载,则Page.IsPostBack属性的值是False,并显示日期和时间单击“提交”按钮后,日期和时间都将保持不变65Page.IsPostBack属性2-2

Page_Web应用程序布局概述复杂的Web应用程序需要一致的页面布局传统的解决方案一般包括下列几种:使用框架:缺点是需要浏览器支持。使用表格:缺点是影响性能。使用用户自定义控件:缺点是增加了程序开发的复杂性。66Web应用程序布局概述复杂的Web应用程序需要一致的页面布页面典型布局栏式结构简单实用、条理分明、格局清晰严谨、适合信息量大的页面区域结构页面精美、适合信息量较少的页面67页面典型布局栏式结构22页面布局技术页面布局技术TableDIV+CSS简单、方便,现已较少用于布局更加美观在页面展示和浏览速度上有很大优势注意:Table方式的布局越来越少,并不代表Table标签过时,在DIV布局的页面上,常常会有Table的表格。68页面布局技术页面布局TableDIV+CSS简单、方便,母版页母版页OOP第8章->Page联系方式内容内容页OOP第8章->Page联系方式内容合并的页面69母版页母版页OOP第8章->Page联系方式内容内容页OO母版页概述使用ASP.NET的母版页,可以为Web站点创建统一的布局。母版页定义Web页面的外观和标准行为;各内容页定义Web页面要显示的特殊内容。当用户请求内容页时,这些内容页与母版页合并一起输出。母版页功能可以为站点定义公用的结构和界面元素,如页眉、页脚或导航栏。70母版页概述使用ASP.NET的母版页,可以为Web站点创建统母版页的优势有利于站点修改和维护,降低开发人员的工作强度提供高效的内容整合能力有利于实现页面布局母版页应用于统一的布局71母版页的优势有利于站点修改和维护,降低开发人员的工作强度母版定义母版页母版页为具有扩展名.master的ASP.NET文件。母版页由特殊的@Master指令识别。例如: <%@MasterLanguage=“C#"%>母版页可以包含静态文本、HTML元素、服务器控件以及代码。母版页还可以包含一种特殊类型的控件:ContentPlaceHolder控件。ContentPlaceHolder定义了一个母版页呈现区域,可由与母版页关联的页的内容来替换。ContentPlaceHolder还可以包含默认内容。72定义母版页母版页为具有扩展名.master的ASP.NET代码分析母版页代码内容页代码<div>

网上花店

<asp:contentplaceholderid="cphContent"runat="server"></asp:contentplaceholder>联系我们</div><%@PageLanguage="C#"MasterPageFile="~/MasterPage.master"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"Title="UntitledPage"%><asp:ContentID="Content1"ContentPlaceHolderID="cphContent"Runat="Server"></asp:Content>内容块的id,用来确定内容块的放置的区域对应的母版页的路径对应于母版页的内容块73代码分析母版页代码<div><%@PageLanguag在内容页中使用母版页右击“解决方案资源管理器”项目名称,在弹出的菜单中选择“添加新项”命令,弹出“添加新项”对话框。在“添加新项”对话框中,选择“VisualC#”为该窗体页的语言,选择“Web内容窗体”选项;给该控件一个合适的命名,一定要以“.aspx”为后缀名。单击“添加”按钮,将会打开“选择母版页”对话框,在“文件夹内容”列表中选择需要引用的母版页文件,然后单击“确定”按钮。74在内容页中使用母版页右击“解决方案资源管理器”项目名称,在弹使用演示演示母版页的使用创建母版页设计样式添加内容页添加内容页有两种方式:1、在母版页任意位置右键,点击添加内容页;2、在解决方案资源管理器上新建新项,在生成aspx页面时勾选“选择母版页”75使用演示演示母版页的使用添加内容页有两种方式:30用户控件概述在一个大系统中,有时候会只有几个*.aspx页面,其余的都是做成*.ascx页面,如网站的导航、网页的头部和底部。这样可以增强页面之间的藕合性。将一个用户控件*.ascx都作为一个独立的功能块。需要修改某一功能时,只需要修改相应的*.ascx文件。76用户控件概述在一个大系统中,有时候会只有几个*.aspx页面用户控件用户控件的扩展名为“ascx”,与“aspx”在结构上相似,是指页面中加载的功能模块。只是用户控件不能单独作为页面运行,必须嵌入到aspx页面中,或者嵌入到其他用户控件中使用。77用户控件用户控件的扩展名为“ascx”,与“aspx”在结构用户控件注册<%@Registersrc="WebUserControl.ascx"tagname="WebUserControl"tagprefix="uc1"%><uc1:WebUserControlID="WebUserControl1"

runat="server"/>78用户控件注册<%@Registersrc="WebUs将Web窗体页转化为用户控件用户控件比Web窗体页面少了<html>、<body>和<form>等元素。知道了用户控件和Web窗体页面的差别,就可以通过添加、删除和修改相应的元素,并且将aspx页面中的@Page指令变成了@Control指令,实现Web窗体页面和用户控件的相互转化。79将Web窗体页转化为用户控件用户控件比Web窗体页面少了<h页面指令@Page定义ASP.NET页解析器和编译器所使用的特定页面的属性,只可包括在.aspx文件中@Control定义ASP.NET页解析器和编译器所使用的特定用户控件的属性,只可包括在.ascx文件中@Import在页面或用户控件中显式地引入一个名称空间@Implements允许在页面或用户控件中实现一个.NET接口@Register用于注册页面中的用户控件和自定义服务器控件以便使用它们@Assembly将程序集引入到当前页面或用户控件中,以便它所包含的类和接口能够适用于页面中的代码@OutputCache对页面或用户控件在服务器上如何进行高速缓存进行控制@Reference用来识别当前页面在运行时应该动态编译和链接的页面或用户控件

ASP.NET页面中通常包含一些类似<%@%>这样的代码80页面指令@Page定义ASP.NET页解析器和编译@Page指令@Page指令定义了ASP.NET页解析器和编译器使用的特定于页面的属性它用于在处理和编译某页面时配置与此页面相关的属性每个ASPX页只能有一个@Page指令@Page指令的语法如下:

<%@Pageattribute="value"

[attribute="value"...]%>81@Page指令@Page指令定义了ASP.NET页@Page指令的属性<%@PageLanguage="c#"AutoEventWireup=“true"MasterPageFile="~/Site.Master"

Codebehind="ContentPage.aspx.cs"Inherits="_01.ContentPage"

ContentType="text/xml"%>指定在编译时和页面的代码声明块中使用的语言指示能否自动处理页面的事件指定继承的母版页指定编译的文件名称,此文件含有与此页面关联的类指定由页面继承的代码隐藏类将响应的HTTP内容类型作为一个标准的MIME类型

82@Page指令的属性<%@PageLanguage=@Con

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论