精通WEB2.0之第02章-ASP-30P课件_第1页
精通WEB2.0之第02章-ASP-30P课件_第2页
精通WEB2.0之第02章-ASP-30P课件_第3页
精通WEB2.0之第02章-ASP-30P课件_第4页
精通WEB2.0之第02章-ASP-30P课件_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

第2章ASP.NETWeb窗体页彻底透析ASP.NETWeb窗体页文件的扩展名为“.aspx”。创建一个Web窗体页方法很简单:用户只需将现有的HTML文件的文件扩展名修改为“.aspx”即可,不需要修改该文件的任何代码。这一小节将详细介绍Web窗体页相关内容,如ASP.NET指令、Web窗体页语法、Web窗体页运行过程等。2.1ASP.NET指令ASP.NET指令是以字符“@”开头。分析器或编译器在分析或编译页(包括窗体页和母版页)、用户控件或其他资源文件时,页、控件或文件可以通过ASP.NET指令指定编译器的属性。当分析器或编译器在处理页、控件或文件时,这些设置生效。通常,这些指令需要包含在页、控件或文件的开头处。每个指令都可以包含一个或多个属性(与值成对出现)。2.1.1页指令@Page分析器或编译器在分析或编译页时,可以通过@Page指令设置分析器和编译器的属性。该指令只能包含在文件扩展名为.aspx的文件中,声明其语法如下:<%@Pageattribute="value"[attribute="value"...]%>@Page指令只能使用在Web窗体页(.aspx)中,且每个页只能包含一条@Page指令。当Web窗体页使用该指令时,它至少要包含一个属性。2.1.3注册指令@Register@Register指令提供了引用用户控件或自定义控件的方法,并引用这些控件的文件(页或者控件)能够使用被引用的控件。换句话说,该指令创建一个标记前缀,实现被引用的控件和其引用文件之间的关联。最终,使得控件能够在其引用文件中呈现出来。2.1.4引用指令@Reference@Reference指令将指定的页或用户控件链接到当前页或用户控件,即在指定的页或用户控件和当前页或用户控件之间建立动态连接。声明该指令的语法如下:<%@ReferencePage="页的路径"Control="用户控件的路径"virtualPath="文件的虚拟路径"%>2.1.5母版页指令@Master分析器或编译器在分析或编译母版页(.master)时,可以通过@Master指令设置分析器和编译器的属性。该指令只能在母版页上使用,且一个母版页只能包含一条@Master指令。声明@Master指令的语法如下:<%@Masterattribute="value"[attribute="value"...]%>2.1.7上一页类型指令@PreviousPageType@PreviousPageType指令提供了获取上一页(当前页的Page对象的PreviousPage属性的值)的强类型的方法。它只能使用在Web窗体页(.aspx)上,声明该指令的语法如下:<%@PreviousPageTypeattribute="value"[attribute="value"...]%>@PreviousPageType指令包含两个属性:TypeName和VirtualPath。其中,TypeName属性指定上一页的类型的名称;VirtualPath属性指定生成强类型引用的文件的路径,它的值为相对路径。一般情况下,TypeName和VirtualPath属性不能同时使用。下面的代码示例设置了生成强类型的文件的VirtualPath属性的值为“~/OtherPreviousPageType.aspx”。<%@PreviousPageTypeVirtualPath="~/OtherPreviousPageType.aspx"%>2.1.8输出缓冲指令@OutputCache@OutputCache指令设置Web窗体页或用户控件的输出缓存策略。2.1.9导入指令@Import@Import指令将命名空间导入到文件中,使得该文件可以使用导入的命名空间中的类和接口。它不但可以导入.NET框架类库中的命名空间,而且可以导入用户自定义的命名空间。声明该指令的语法如下:<%@Importnamespace="value"%>2.1.11执行指令@Implements@Implements指令指定当前文件(如Web窗体页、用户控件等)需要实现的.NET框架类库中的接口。如果用户在文件中需要实现接口时,用户必须在<script>标记中实现接口所需要的方法和属性。若文件需要实现多个接口,则可以在该文件上多次使用@Implements指令。@Implements指令只包含一个属性:interface。该属性表示当前文件需要实现的接口的名称。声明@Implements指令的语法如下:<%@Implementsinterface="MyValidInterfaceName"%>2.2Web窗体页语法Web窗体页不但可以包括静态内容,而且可以包含使用“<%%>”或“<script></script>”标记的内容。这些标记使用不同的语法结构,其具体包括如下:代码呈现块和代码声明块语法。服务器控件语法(包括HTML服务器控件和Web服务器控件)。声明性表达式语法。数据绑定表达式语法。2.2.1代码声明和代码呈现语法代码声明块必须定义在<script>标记中,并且必须使用“runat=server”属性进行标记。代码声明块语法如下:<scriptrunat="server"language="codelanguage"Src="pathname">代码...</script>2.2.3声明性表达式语法声明性表达式语法是ASP.NET2.0新增的语法,它可以在分析Web窗体页之前将表达式的值替换到页中。使用声明性表达式可以获取配置文件Web.Config中连接字符串的值,也可以从资源文件中获取当前本地化的值。声明性表达式语法如下:<%$表达式%>2.2.4数据绑定语法数据绑定表达式能够将控件属性绑定到数据容器值。其通常放置在“<%#…%>”标记元素之中。当其父控件的DataBind()方法被调用时,将计算标记中表达式的值。其中,数据绑定表达式可以包含在服务器控件的“属性/值”对的值一侧,也可以放置在Web窗体页中的任何位置。2.2.5对象标记语法对象标记语法能够在Web窗体页中声明或创建COM或.NETFramework中的对象,即声明或创建变量的实例。服务器端对象标记语法存在3种方式,2.2.7服务器端注释语法服务器端注释语法允许将代码注释,或内容嵌入到Web窗体页,或用户控件的任何位置(除了被<script>标记元素标记的代码块内部)。被注释的代码或内容将不被执行或呈现。服务器端注释语法如下:<%--注释的内容或代码--%>2.2.8内联代码分离和代码隐藏分离方式ASP.NET提供了两种组织Web窗体页中代码的方式:内联代码分离方式和代码隐藏分离方式。用户在创建Web窗体页时,可以设置页的代码组织方式,如图2.6所示。如果用户选中了【将代码放在单独的文件中】复选框,则页的代码组织方式为代码隐藏分离方式,否则为内联代码分离方式。2.3Web窗体页运行过程当ASP.NETWeb应用程序运行时,每一个被请求的Web窗体页都将经历一个运行过程(即生命周期)。在该运行过程中,ASP.NET将对Web窗体页进行一系列的处理步骤,如页请求、初始化页面、载入页面、处理事件、预呈现页面、呈现页面、卸载页面等。2.3.2载入页面Web窗体页初始化之后,ASP.NET分析器或编译器将载入页。在此过程中,如果当前请求是回发请求(不是第一次请求),则读取页和控件的视图状态(ViewState)中读取其状态,并将状态的值应用到页和控件。在此过程中,页将触发Page_Load事件。该事件读取并更新控件属性。2.3.3处理事件Web窗体页载入之后,将处理页的回发事件。在此过程中,如果当前请求是回发请求(不是第一次请求),则将触发页或控件的定义的事件处理程序。如Button控件的Click事件等。注意:在处理回发事件之前,如果页包含了需要执行验证操作的控件,那么页首先检查页和各个验证控件的IsValid属性是否为true。如果为true,则处理回发事件,否则行处理回发事件。2.3.4预呈现页面Web窗体页处理回发事件之后,将预呈现页面。在此过程中,页将执行其被呈现之前的处理步骤。此时,页将触发Page_PreRender事件。注意:该事件是对页的内容进行最后修改。2.3.6卸载页面Web窗体页的最后一个阶段——卸载页面,当页面被释放时发生。在该阶段中,页将执行最后的清理工作,释放页占用的资源等。最典型的操作是关闭打开的文件或数据库的连接。在此过程中,页将触发Page_Unload事件。该事件将执行以下操作:关闭打开的文件。关闭打开的数据库连接。完成日志。完成或其他特定的任务。2.3.7验证页面运行过程下面的代码实例在Default.aspx页面中,定义了页面运行过程中的

温馨提示

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

评论

0/150

提交评论