.NET之ASP Web Form快速入门

80酷酷网    80kuku.com

   世界软件巨擘微软公司提出的.NET概念给全世界的IT产业指明了新的发展方向,无论是IT业内人士、还是企业决策者,快速领会这个新概念的含义及深远影响,都显得非常必要。

本文就向你介绍.NET之ASP Web Form的内容,旨在带领你快速理解其相关概念、含义及作用。全文包括以下各节:

什么是ASP.NET的Web Forms
编写第一个Web Form页面
使用ASP的<% %>块
处理服务器控件的事件
使用定制的服务器控件
列表、数据以及数据绑定
表单验证控件
Code-Behind类型的Web Forms

什么是ASP.NET的Web Forms?
ASP.NET的Web Forms页面架构是一个可升级的公用语言运行程序模型,它可被用在服务器端动态地建立web页面。

作为ASP的进化版本,ASP.NET之Web Forms架构弥补了它的许多关键功能的不足。比如:

能够创建并使用可再用用户界面控件:这些控件可以压缩到公用功能中,从而减少页面代码。
能够建立清晰有序的程序结构,而不再是象意大利式细苗条一样的代码段。
能够提供强大的WYSIWYG页面设计视图
更全面地描述ASP.NET之Web forms,可以这样说:

ASP.NET Web Forms使创建动态Web用户界面更简单、更强大
ASP.NET Web Form页面无需脚本库程序或者cookie,能够满足任何浏览器客户端的需要
ASP.NET Web Form页面兼容ASP的语法结构
ASP.NET 服务器控件使压缩合并公用功能简单易行
ASP.NET 自带45个内置服务器控件,并且支持第3方产品
ASP.NET 服务器控件可以创建适用于高、低版本浏览器的HTML内容
ASP.NET 模板提供了定制列表服务器控件外观及行为的简单方法
ASP.NET 验证控件可以容易地处理客户端或者服务器端的数据验证工作

编写第一个Web Form页面

  ASP.NET的Web Form页面是纯文本文件,以.aspx为文件扩展名。 当客户端浏览器请求一个.aspx文件时,ASP.NET将解析并编译目标文件为.NET架构类,接着这个类动态处理进来的请求。注意:.aspx文件只在第一次访问时被编译,随后的再次请求将重用这个类实例。这与JSP的处理方式大致相同。呵呵,英雄所见最后总是相同 :-)

  创建ASP.NET页面的最简单方法就是将现有HTML文件的后缀名改为.aspx,不需要修改任何代码。下面的例程执行收集用户名称以及选择目录的功能:

Intro1.aspx 

  在上面的例子中,当用户点?Lookup"按钮后,看上去什么也没有发生。这是因为这个.aspx文件只包含静态HTML内容。

使用ASP的<% %>块

  ASP.NET提供了兼容ASP的语法结构,这其中包括支持<% %>代码块,使用它混合编写HTML以及.aspx代码。这些代码段按照从上到下的顺序在页面中被执行。

请看以下的例子:

Intro2.aspx

  与ASP不同,aspx文件中位于<% %>之间的代码是被编译过的,而不是使用脚本引擎解释执行的。这样处理后,就大大地提高了程序的运行效率。

  同时,在ASP.NET中可以象ASP一样使用<% %>代码块动态地修改HTML的输出内容。比如:

Intro3.aspx

  使用<% %>代码块虽然可以定制ASP.NET页面的输出内容,但却不能很好地建立一个清晰的HTML编程模型。这可以从上例的源代码中显而易见地看到。


 

处理服务器控件的事件
每个ASP.NET服务器控件都可以当做一个对象模型看到,包括了属性、方法和事件。ASP.NET应用开发人员利用这些特征就能够清晰地修改页面并建立动态交互功能。

以下的例子描述了如何处理<asp:button runat=server>控件的onClick事件,从而进一步操纵<asp:label runat=server>控件的"text"属性:

Intro6.aspx

这个例子与前面列举的"Intro3"例程功能相当。但是,你可以看到,这里的代码使用了服务器控件,从而使程序结构更加清晰易懂。

使用定制的服务器控件
ASP.NET系统自带了45个内置的服务器控件。除了使用这些控件外,开发者还可以选择第3方的控件产品。

以下例子描述了如何使用日历控件。在页面中使用<acme:calendar runat=server>标记进行日历控件的定义。页面顶部的<% Register %>标识负责使用控件执行的"Acme"名字空间登记"Acme" XML标记前缀,随后在运行时ASP.NET页面解析器将使用这个名字空间转载日历控件类实例。

Intro7.aspx

上面例子中的日历控件可以适用于高、低版本的浏览器。在高版本浏览器中将产生DHTML输出,从而在日期、月份的选择上不再需要与服务器进行往返处理。对于低版本浏览器,控件将产生标准的HTML3.2内容,客户端交互操作时将有与服务器端的往返处理过程发生。

然而,不管访问页面的是高版本浏览器还是低版本浏览器,需要编写的代码是相同的。日历控件本身被压缩进相应的逻辑处理过程中。

列表、数据以及数据绑定
ASP.NET内置一套数据绑定与列表控件,可以使用它们设计访问数据库的定制用户界面。下面的例子描述了如何使用<asp:datagrid runat=server>控件绑定来自SQL数据库查询所得的书籍信息:

p>

Intro7.5.aspx

<asp:datagrid runat=server> DataGrid 控件借助传统的格子用户界面提供了快速显示数据结果的简易方法。ASP.NET开发者也可以选择使用<asp:DataList runat=server> DataList 控件以及定制的"ItemTemplate" 模板去定制数据信息:

Intro8.aspx

从上面的例子中我们可以看到,<asp:datalist runat=server> 控件能够使最终用户精确地控制列表中每个项目的结构与布局(通过设置ItemTemplate模板属性)。同时,这个控件也能够自动地处理2列内容自动换行的情况,方法是:使用datalist的Repeatcolumn属性控制列数目。

请看下面使用<asp:datalist runat=server>控件的例子:

Intro9.aspx

表单验证控件
ASP.NET之Web Forms页面架构提供了一套服务器控件验证方法,它们简单易用、功能强大,既可以检查表单输入内容的正确性,还可以显示相应的反馈信息。

验证控件可以象其他服务器控件一样添加到ASP.NET页面中。有一些处理特殊类型的验证控件,比如说:范围检查或者匹配判断再加上一个RequiredFieldValidator控件,就可以使用户不会跳过一个输入域的操作。

以下的例子描述了使用2个<asp:requirefieldvalidator runat=server>控件验证页面上TextBox和DropDownList控件的内容:

Intro10.aspx

这里的代码也同样适用于高、低版本的浏览器。对于高版本浏览器,将在客户端通过javascript和DHTML进行验证工作。对于低版本浏览器,验证会在服务器端执行。

ASP.NET页面开发者可以随意地在运行时检查Page.IsVaild属性的数值,从而判断页面上所有的验证服务器控件当前是否有效。这样就提供了判断是否执行商业逻辑的简易“单行”处理方法。比如,下面的例子中,在进行对选择目录的数据库搜索动作前,首先检查一下Page.IsValid的数值:

Intro11.aspx

Code-Behind 类型的 Web Forms
ASP.NET支持两种建立动态页面的方法。第一种就是上面演示例子中涉及到的,在原始.aspx文件中进行定义。另外一个方法叫做Code-behind,用它可以使页面代码更加清晰地与其内容进行分离。

请看下面的演示例子:

Intro12.aspx

结 语

通过以上的图文例示介绍,我想你一定感受到了ASP.NET的强大功能。以前在ASP中需要处理的许多复杂技术细节,在ASP.NET中竟然完全不用考虑,而且功能大大地增强。新技术只所以吸引我们,关键就在于:它使我们更加注重于内容的构思而不是技术的细节,从而更好地发挥人类的想像力与创造力。

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: