《VBWeb应用程序开发.ppt》由会员分享,可在线阅读,更多相关《VBWeb应用程序开发.ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第8章 Web应用程序开发 主编:夏敏捷教学目标了解ASP.NET工作原理掌握ASP.NET常用控件初步学会使用ASP.NET访问数据库。目录8.1 什么是ASP.NET8.1.1 ASP.NET页面的结构8.1.2 ASP.NET网页代码模型8.1.3 编译和部署8.1.4 ASP.NET常用内置对象8.2 ASP.NET控件8.3 数据库操作8.3.1 基于数据源的数据绑定8.3.2 数据源组件8.3.3 GridView控件8.3.4 实例开发 8.1 什么是什么是ASP.NET8.1.1 ASP.NET页面的结构ASP.NET页面是一个用.aspx 扩展名来保存的。页面的内部结构是非常
2、模块化的,包括三个独立的部分:页面指令、代码和页面布局。页面指令页面指令 页面指令建立该页面的运行环境,规定HTTP运行库如何处理该页面,并确定对该页面可以安全做出的假设。常用Page指令或其他指令。代码部分代码部分 代码部分包含页面和控件事件的处理程序。与该页面有关的任何源代码可以按内联方式插入该页面中,或者通过一个独立的文件附加到该页面。任何页面代码总是先编译后执行。在ASP.NET中,它还可以进行预编译,并以二进制程序集的形式进行部署。页面布局页面布局 页面布局表示页面的框架包括服务器控件、文本和HTML标签。服务器控件的用户界可以用声明的属性和控件属性进行填充。8.1.2 ASP.NE
3、T网页代码模型单文件页模型和代码隐藏页模型功能相同。在运行时,这两个模型以相同的方式执行,而且它们之间没有性能差异。因此,页模型的选择取决于其他因素,例如,要在应用程序中组织代码的方式、将页面设计与代码编写分开是否重要等等。8.1.3 编译和部署8.1.3 编译和部署单文件页和代码隐藏页的编译和部署非常相似。最简单的方法是将页复制到目标服务器的根目录下(根目录通常是c:inetpubwwwroot)。根据需要,也可以创建一个临时的虚拟目录。如果使用代码隐藏页,则要复制.aspx页和代码文件。首次请求该页时,ASP.NET会对其进行编译然后运行。也可以预编译网站。在这种情况下,ASP.NET将为
4、页生成目标代码,可以将其复制到目标服务器中。预编译对单文件模型和代码隐藏模型都有效,这两种模型的输出相同。8.1.4 ASP.NET常用内置对象在ASP.NET中,有5个常用内置对象,它们是Request对象、Response对象、Server对象、Application对象和Session对象。这些对象用来维护有关当前应用程序、每个用户会话、当前 HTTP 请求、请求的 Web 窗体页等信息,主要用于与用户的交互。因此,它们在ASP.NET应用程序扮演非常重要的角色。1Response对象Response对象用于向客户端发送信息,该对象提供了很多有用的属性和方法。(1)利用Response对
5、象发送信息Response对象最常用的功能就是向浏览器发送信息,而实现这一功能最常用的是它的Write方法,其使用形式为:Response.Write(value)value代表发送的信息,可以是任何类型的变量或者表达式。8.1.4 ASP.NET常用内置对象(2)利用Response对象重定向浏览器重新定向浏览器就是让浏览器重新访问一个新地址(URL)。可以使用Response对象的Redirect方法强制用户进入某个必须先访问的网页,该方法的使用语法如下:Response.Redirect(newUrl)参数newUrl表示重定向后的目标地址。在每个功能页的开始部分增加一个Response
6、.Redirect语句,就可以强制用户首先访问指定的页面。例如:Response.Redirect(test.aspx)(3)将指定的文件写入HTTP 输出内容流可以使用Response对象的Response.WriteFile()方法。例如:Response.WriteFile(test.txt)8.1.4 ASP.NET常用内置对象2Request对象(1)用Request对象获取URL传递变量(2)用Request对象获取表单传递值(3)用Request对象获取服务器变量值3Server对象HttpServerUtility类提供了用于处理Web请求的方法,HttpServerUtili
7、ty类的方法和属性通过ASP.NET提供的内部Server对象公开,HttpServerUtility类的常用方法如下:(1)Server.HtmlEncode方法(2)Server.UrlEncode方法(3)Server.MapPath方法4Application对象5.Session对象8.2 ASP.NET控件控件8.2.1 ASP.NET控件概述ASP.NET控件基本上有两个系列,分别是HTML服务器控件和Web(标准)服务器控件(如图8-1所示)。System.Web.UI.HtmlControls是HTML服务器控件的命名空间,System.Web.UI.WebControls是
8、Web服务器控件的命名空间。8.2 ASP.NET控件控件8.2.1 ASP.NET控件概述ASP.NET控件基本上有两个系列,分别是HTML服务器控件和Web(标准)服务器控件(如图8-1所示)。System.Web.UI.HtmlControls是HTML服务器控件的命名空间,System.Web.UI.WebControls是Web服务器控件的命名空间。8.2.2 HTML服务器控件HTML服务器控件看上去像HTML标签,只不过它还有runat=server属性。虽然它们看上去确实相同,但是runat属性使两者具有很大的差异。在ASP.NET中,只要添加runat属性,就能够以面向对象的
9、方法以编程的方式配置原始标签。【例8-1】使用HTML服务器控件实现文件上传功能。Input(File)控件是把文件从一个浏览器上传到Web服务器的HTML工具。图8-2是运行时效果。8.2.3 Web服务器控件Web(标准)控件在System.Web.UI.WebControls命名空间中定义。与HTML控件一样,Web控件也是由于ruant=server属性而充满生机的服务器端组件。与HTML控件不同的是,Web控件提供了一个重构的HTML属性和事件集的编程接口。因而,Web控件在API设计方面似乎更一致、更抽象,并且功能更丰富,但是它们仍然产生合法的标记。大量的Web控件和HTML控件功
10、能相同,并且生成几乎相同的标记,但是它们通过不同的编程接口来实现。例如,Web控件命名空间定义TextBox控件,并通过使用;类似地,HTML控件命名空间提供了HtmlInputText控件,并用标签声明它。具体采用哪一种方法主要是一个个人爱好问题,功能上的差别是很少见的。Web控件可以根据其功能分成不同的范畴:输入和按钮控件、数据绑定的控件、安全相关的控件、网格和视图控件,以及几个提供特别功能的杂项控件(Miscellaneous controls)和Web上常用的难以归类的控件(例如,日历控件、广告旋转器等)。8.2.4 Button、ImageButton和LinkButton控件这三个
11、控件使用户可以指示已完成表单或要执行特定的命令,功能类似,但在网页上显示的方式都不同。【例8-2】使用Button控件触发客户端事件。8.2.5 Image控件和ImageMap控件Image控件在Web页上显示一幅图像,该图像的路径通过ImageUrl属性设置。图像URL既可以是相对的,也可以是绝对的,并且大多数程序员明显喜欢相对URL,因为它们使一个Web站点更容易迁移。由于某种原因不能找到图像或者浏览器不能生成图像时,还可以指定要显示的替代文本。这种情况下使用的属性是AlternateText。在页上该图像与其他元素的对齐方式使用ImageAlign属性设置。8.2.6 文本输入控件Te
12、xtBox服务器控件是使用户可以输入文本的输入控件,该控件可以用于单行文本输入、多行文本输入和密码文本输入。设置TextMode属性的不同取值可以实现上述三种类型的输入:SingleLine用户只能在一行中键入信息。您还可以选择限制控件接受的字符数。Password与单行TextBox控件类似,但用户键入的字符将以星号(*)屏蔽,以隐藏这些信息。Multiline用户在显示多行并允许文本换行的框中键入信息。8.2.7 复选框和单选钮复选框控件有两个:CheckBox控件和CheckBoxList控件。两种控件都为用户提供了一种输入布尔型数据(真或假、是或否)的方法。用户可以向页面添加单个Che
13、ckBox控件,并单独使用这些控件。作为另外一种Web服务器控件类型,CheckBoxList控件则是单个控件,可作为复选框列表项集合的父控件。使用CheckBoxList控件的许多过程与使用其他列表Web服务器控件的过程相同。8.2.8 AdRotator控件从理论上讲,AdRotator控件显示一个自动调整大小的图像按钮,并且每次页面刷新时同时更新图像和URL。控件所要显示的图像和其他信息从一个根据特定模式编写的XML文件中读取。更具体地讲,我们使用AdRotator控件创建Web窗体页上的广告标语。该控件实际上在页面中插入一幅图像和一个超链接,并使其指向所选的广告页面。该图像被浏览器调整
14、到适合AdRotator控件的尺寸,而不管它的实际大小如何。8.2.9 Calendar控件Calendar控件显示一个月历,它允许我们选择日期以及通过月份前后导航。8.2.10 PlaceHolder控件PlaceHolder控件只用作页中其他控件的容器。PlaceHolder控件本身不会产生可视输出,并且只能包含通过Controls集合动态增加的子控件。如下代码说明了如何在一个Web页中嵌入PlaceHolder控件:有了一个占位符以后,就可以向它添加控件。占位符不会增加额外的功能,但是它提供了分组,使我们能够容易而直接地识别一组相关的控件。如下代码说明了如何创建一个新按钮并把它添加到一个
15、已有的占位符:Dim btn As Button=new Button()btn.Text=Click me theToolbar.Controls.Add(btn)PlaceHolder控件在控件树上保留了一个位置,并且在识别页面的特定区域以便于定制和扩展(通过以编程方式来添加控件这一方式)时尤其有用。8.2.11 视图控件ASP.NET 2.0引入了两个新的相关控件,用以创建一组可互换的子控件面板。MultiView控件定义一组视图,每个视图用View类的一个实例表示。每次只有一个视图是活动的,并且呈现给客户端。View控件不能作为独立组件使用,并且只能放在一个MultiView控件里。下
16、面用一个例子加以说明:当用户单击当前视图中嵌入的按钮或链接时,我们通过回发事件改变活动视图。为了表示新视图,既可以设置ActiveViewIndex属性,也可以把视图对象传递给SetActiveView方法。例如:Tables.ActiveViewIndex=Views.SelectedIndex8.3 数据库操作数据库操作8.3.1 基于数据源的数据绑定多数Web应用程序仅仅是数据驱动的应用程序。因此,能够把HTML元素(诸如下拉列表或者表)绑定到结构化数据,是很多开发平台的一个关键特征。数据绑定是从一个固定的数据源检索数据并将它们与服务器控件上的属性动态关联的过程。有效的目标控件是为了支持
17、数据绑定而专门设计的控件即数据绑定控件。数据绑定控件并不是另一个系列的控件;它们只是具备若干公认数据相关属性并且用一组公认集合对象加以填充的服务器控件。8.3 数据库操作数据库操作8.3.2 数据源组件数据源组件是一个为了与数据绑定控件交互而设计的服务器控件,它隐藏了人工数据绑定范式的复杂性。数据源组件不仅为控件提供数据,而且还支持数据绑定控件执行其他常见操作,诸如插入、删除、排序和更新。每个数据源组件封装一个特定的数据提供程序关系数据库、XML文档或者定制类。对定制类的支持,意味着我们现在可以直接把控件绑定到已有的类例如,业务层或数据访问层的类。8.3 数据库操作数据库操作8.3.3 Gri
18、dView控件GridView是DataGrid控件的后继者。它提供了相同的基本功能集,同时增加了大量扩展和改进。DataGrid是一个功能非常强大的通用控件。然而,它有一个重大缺陷:它要求我们编写大量定制代码,甚至处理比较简单而常见的操作,诸如分页、排序、编辑或删除数据等也不例外。GridView控件旨在解决此限制,并以尽可能少的数据实现双向数据绑定。该控件与新的数据源控件系列紧密结合,而且只要底层的数据源对象支持,它还可以直接处理数据源更新。这种实质上无代码的双向数据绑定是新的GridView控件最著名的特征,但是该控件还增强了很多其他功能。它之所以比DataGrid控件有所改进,是因为它能够定义多个主键字段、新的列类型以及样式和模板选项。GridView还有一个扩展的事件模型,允许我们处理或撤销事件。8.3 数据库操作数据库操作8.3.3 GridView控件新闻显示、处理页面实例