WEB窗体简介:是ASP.NET新的开发模式,结合了ASP简易开发和VB高效率的优点。开发人员可以把控件拖放到页面上,编写代码(在代码隐藏页中)来提供交互功能,调用业务对象和执行其他任务。
WEB窗体组成:还包括指令,用户控件,服务器控件以及服务器端数据绑定语法等。WEB窗体由HTML,代码和控件联合组成,其中控件在运行Microsoft Internet信息服务(IIS)的WEB服务器上执行。WEB窗体通过生成发送给浏览器的HTML来显示用户界面(User Interface,UI),而支持代码和运行UI的控件驻留在WEB服务器上。客户端界面和服务器端代码的分离是WEB窗体和传统WEB页的关键区别。传统的WEB页面需要把所有的代码都发送给浏览器来处理,而WEB窗体只发送界面控件给浏览器,并将页面处理保留在服务器端。UI和代码的分离在增强了WEB页的安全性和功能的同时,也扩大了所支持的浏览器的范围。
WEB窗体的属性:WEB窗体的功能通过三级属性进行定义;页面属性定义全局功能,正文属性定义如何显示网页,窗体属性定义如何处理控件组。
1.页面属性
<@Page>标记定义页面特定的属性,这些属性被ASP.NET页面解析器和编译器使用。每个*.aspx文件只能包含一个<@Page>标记。例如:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
其中Language属性指定在对页面中所有内嵌代码<%%>和<%=%>和代码声明块进行编译时使用的语言,属性值包括任何.NET下的编程语言,如C#,Visual Basic.NET,J#等。在每个页面中只能使用和指定一种语言。
CodeFile属性(.NET前期版本是CodeBehind属性)指定指向页面引用的代码隐藏页文件的路径,此属性与Inherits属性一起使用,可以将代码隐藏页文件与网页相关联。
AutoEventWireup属性指示页面的事件是否自动绑定。如果启动了事件自动绑定则为true,否则为false,默认值为true.
Inherits属性用于定义供页面继承的代码隐藏类。
2.正文属性
<body>标记属性定义了显示在客户端浏览器中的对象外观,例如:
<body ms_positioning="GridLayout">
<body>标记属性主要是PageLayout属性,标记为ms_positioning,用于决定如何安排控件和文本的页面中的位置,共有两个选项:FlowLayout(文本,图像,控件自动换行)和GridLayout。
3.窗体属性
<form>标记属性定义了如何处理控件,虽然在页面上有许多HTML窗体,但在*.aspx页中只能有一个服务器端窗体。典型的<form>标记为:
<form id="Form1" method="post" runat="server">
</form>
</form>标记属性包括以下两种
1.method属性定义将控件送回服务器的方法。post和get。
2.WEB窗体的一个关键特性就是控件在服务器端运行。runat="server"属性使窗体将控件信息送回到支持代码运行的服务器端的ASP.NET页。如果runat属性没有被设置为server,则该窗体只能作为一般的HTML窗体运行。
WEB窗体的运行机制:
在ASP.NET的WEB窗体中,采用了代码隐藏机制,将与现实外观相关联的代码和后台逻辑代码分离到两个不同的文件中,这样做的主要优点就是可以有效增加WEB页的安全性和功能,扩大了所支持的浏览器的范围,而且便于分工,从而提高了开发效率。
在使用代码隐藏页的时候,每个*.aspx页都与一个代码隐藏页想关联,并且在信息返回发出请求的客户端浏览器之前,必须编译该代码隐藏页。每个WEB窗体页由两个独立的文件(*.aspx页和*.aspx.cs)组成,当asp.net应用程序运行时,这两个文件将构成一个单元。www.0372hr.cn www.hqqrc.com
WEB窗体编译执行的步骤如下:
(1).链接文件 *.aspx页必须与代码隐藏页*.aspx.cs页关联,在Visual studio 平台中,自动添加Page指令实现这种关联。
(2).JIT即时编译:代码隐藏页在客户端第一次请求*.aspx页的时候进行编译。在第一次请求之后,所有后续的请求都使用现有的编译过的文件。因此在处理第一次页面请求的时间会比较长,而处理后续的请求就比较快了。
(3)执行:当用户请求*.aspx页时,动态链接库文件处理到达的请求,并创建适当的HTML和脚本返回给发出请求的浏览器,以做出响应。