【精品】WEB 服务器精品ppt课件.ppt
WEB 服务器安装安装IIS服务器版的服务器版的Windows操作系统中,它操作系统中,它是一个可选的安装组件,在一些非服务是一个可选的安装组件,在一些非服务器版的器版的Windows操作系统中也含有操作系统中也含有IIS安装安装VisualStudio.NET前必须在你的前必须在你的机器上先安装机器上先安装IISIIS安装过程中自动配置安装过程中自动配置WEB服务器,服务器,一般一般不要更改不要更改系统默认的配置系统默认的配置,以免影,以免影响响ASP.NET的运行的运行。应了解的应了解的IIS知识知识网站默认工作目录网站默认工作目录:C:INTERPUBWWWROOT浏览器访问浏览器访问http:/localhost既访问此路径既访问此路径开发网站时网页文件通常都放在这个目录里开发网站时网页文件通常都放在这个目录里我们建立的我们建立的ASP.NET应用程序默认情况下应用程序默认情况下也都放在这个文件夹里。也都放在这个文件夹里。实际开发时经常放在别处,但是要进行设置。实际开发时经常放在别处,但是要进行设置。Internet信息服务信息服务控制面板控制面板/管理工具管理工具/Internet信息服务,可信息服务,可以打开以打开IIS的管理工具,对的管理工具,对IIS进行管理、配进行管理、配置置有时我们希望将应用程序放在别的目录下,为有时我们希望将应用程序放在别的目录下,为了能找到相应路径,需要建立了能找到相应路径,需要建立虚拟目录虚拟目录在在IIS管理工具中右键单击管理工具中右键单击“默认默认web站点站点”,新建新建/虚拟目录虚拟目录,根据向导选择相应目录即,根据向导选择相应目录即可可此时浏览器访问此时浏览器访问http:/locaohost/虚拟目录名虚拟目录名/文件名文件名既可访问此站点。既可访问此站点。5.一个简单的一个简单的ASP.NET程序演示程序演示创建一个创建一个ASP.NETWeb应用程序应用程序注意应用程序默认的创建位置:注意应用程序默认的创建位置:http:/localhost/WebApplication1可以修改项目名称可以修改项目名称WebApplication1如果创建到其他目录下,需要设置如果创建到其他目录下,需要设置虚拟目录虚拟目录项目创建后,出现一个空白项目创建后,出现一个空白web窗体,同窗体,同时在时在“解决方案管理器解决方案管理器”中,有一个中,有一个Default.aspx文件文件,注意窗体下方的,注意窗体下方的“设计设计”与与“源源”标签,切换一下看看效果标签,切换一下看看效果代码分析代码分析HTML代码代码Default.aspxRow1:处理该文件所需处理该文件所需信息,其中几个关键:信息,其中几个关键:language:C#Codebehind:对应的后置文件对应的后置文件AutoEventWireup=“false”:由由IDE自动生成自动生成事件代理事件代理Inherits:继承后置文件的类继承后置文件的类代码分析代码分析HTML代码代码Row3:文档类型说明文档类型说明Row5-最后最后:都是常见的标准都是常见的标准HTML标记标记但是对于我们添加到页面的控件,其标记但是对于我们添加到页面的控件,其标记都是都是的形式。的形式。该标记表明使用的是该标记表明使用的是ASP控件控件其实我们仍然可以在页面中使用标准的其实我们仍然可以在页面中使用标准的HTML页面元素。页面元素。试一下:在工具箱中展开试一下:在工具箱中展开HTML项,拖一项,拖一个文本框到页面中,再看看代码的变化。个文本框到页面中,再看看代码的变化。代码分析代码分析HTML代码代码另外你会发现,另外你会发现,ASP控件中都有一句控件中都有一句runat=“server”,表明这些控件是在服务器端执,表明这些控件是在服务器端执行的。行的。实际上,每一个实际上,每一个ASP.NET控件都对应一个控件都对应一个HTML元素(控件),具体对应什么类型的元素(控件),具体对应什么类型的控件取决于浏览器和控件取决于浏览器和web控件参数的设置控件参数的设置当服务器返回页面到客户端时,发送回来的当服务器返回页面到客户端时,发送回来的都是都是HTML元素。元素。代码分析代码分析后置代码后置代码名字空间名字空间System.Web:管理客户请求和服务器响应管理客户请求和服务器响应的类的类System.Web.UI:创建创建web应用和控件的所应用和控件的所需的类需的类System.Web.UI.WebControls:web控件控件System.Web.UI.HtmlControls:HTML控件控件代码分析代码分析后置代码后置代码执行过程执行过程首先发生首先发生init事件,调用事件,调用OnInit方法方法OnInit方法调用方法调用InitializeComponent方法对方法对组件进行初始化组件进行初始化然后发生然后发生Load事件,调用事件,调用Page_Load方法,方法,可在该方法中添加代码,处理装入可在该方法中添加代码,处理装入Form时时执行的操作执行的操作注意注意:每次加载此页都会执行该代码,如果:每次加载此页都会执行该代码,如果想只在第一次加载时执行代码,需要添加控想只在第一次加载时执行代码,需要添加控制代码(后面介绍)制代码(后面介绍)ASP.NET应用程序和网站的区别应用程序和网站的区别新建一个网站项目的时候,有两个选择:新建一个网站项目的时候,有两个选择:新建网站新建网站和和新建新建AWeb应用程序应用程序。它们都可以用来开发它们都可以用来开发Web应用,但是开发应用,但是开发时及今后的维护方面有一些差异。时及今后的维护方面有一些差异。简单看,小型应用用网站方式比较简单,简单看,小型应用用网站方式比较简单,大型项目用大型项目用Web应用程序较好。应用程序较好。新建网站新建网站:完成后可直接发布,发布时生:完成后可直接发布,发布时生成的成的DLL文件名是随机的,不与原文件直文件名是随机的,不与原文件直接对应。使用增量编译模式,文件被修改接对应。使用增量编译模式,文件被修改后,只有这部分才会被增量编译进去后,只有这部分才会被增量编译进去。ASP.NET应用程序和网站的区别应用程序和网站的区别Web应用程序应用程序:有重新生成和发布两项有重新生成和发布两项可在其中添加多个项目,便于团队合作可在其中添加多个项目,便于团队合作开发模式和开发模式和Windows应用程序类似应用程序类似发布前需要编译发布前需要编译后台代码有任何修改,都要重新进行编后台代码有任何修改,都要重新进行编译,维护较麻烦。译,维护较麻烦。6.Web控件与控件与HTML控件控件Web控件控件是是System.Web.UI.WebControls名名称空间中定义的服务器控件,它们通常在称空间中定义的服务器控件,它们通常在标签中添加标签中添加例如:例如:HTML控件控件在在System.Web.UI.HtmlControls名称空间中,它们在常规的名称空间中,它们在常规的HTML标签中添标签中添加。例如:加。例如:HTML控件默认是控件默认是客户端运行客户端运行。如果为它也加一句如果为它也加一句runat=“server”会怎样?会怎样?可以看看自动生成的代码是否有变化?可以看看自动生成的代码是否有变化?Web与与HTML控件的差异控件的差异HTML 控控件件:不不具具备备任任何何抽抽象象能能力力。每每种种控件与控件与 HTML 标记都是一一对应的。标记都是一一对应的。Web控控件件:运运行行在在Web服服务务器器上上,允允许许通通过过编编程程控控制制这这些些网网页页元元素素,故故它它的的目目标标模模型型不不受受 HTML语法的限制。语法的限制。Web控件创建了更高级别的抽象,可以没有控件创建了更高级别的抽象,可以没有任何对应的任何对应的HTML标记(如标记(如Calendar和和DataGrid控件)。控件)。Web控件还能够在适当控件还能够在适当的场合起到合并功能的作用(例如用一个的场合起到合并功能的作用(例如用一个TextBox控件来代替多个控件来代替多个HTML标记)标记)(1)抽象能力抽象能力(2)对对目标浏览器的适应能力目标浏览器的适应能力HTML控控件件不不会会自自动动检检测测请请求求页页面面的的浏浏览览器器的的能能力力,也也不不会会修修改改它它们们提提供供的的HTML。在在使使用用这这组组控控件件时时,你你要要负负责责确确保保页页面面能能同同时时在高级和低级浏览器上工作。在高级和低级浏览器上工作。Web控件能够自动对它们生成的结果进行调控件能够自动对它们生成的结果进行调整,以确保输出结果在高级浏览器和低级浏整,以确保输出结果在高级浏览器和低级浏览器上的工作同样出色。览器上的工作同样出色。Web控件还能够针控件还能够针对不同的浏览器提供不同的行为,从而充分对不同的浏览器提供不同的行为,从而充分发挥浏览器的潜力。发挥浏览器的潜力。(3)程序员对生成的程序员对生成的HTML的控制能力的控制能力HTML控控件件允允许许您您完完全全控控制制所所显显示示的的内内容以及发送到客户机浏览器的内容。容以及发送到客户机浏览器的内容。Web控件提供了更为丰富的对象模型,控件提供了更为丰富的对象模型,以及适应多种浏览器的能力。因而,它以及适应多种浏览器的能力。因而,它们没有提供对输出结果的相同程度的控们没有提供对输出结果的相同程度的控制能力。制能力。在开发在开发Web应用程序时,可以根据这两组应用程序时,可以根据这两组控件的能力以及您的需求来从中进行选择。控件的能力以及您的需求来从中进行选择。还可以选择在同一页上混合使用这两组控件还可以选择在同一页上混合使用这两组控件一般来说,一般来说,Web控件功能更强大,而控件功能更强大,而HTML控件效率更好。控件效率更好。同时提供具有一些重复功能的同时提供具有一些重复功能的HTML控件控件和和Web控件是有必要的,它给了程序员更控件是有必要的,它给了程序员更多的选择余地。多的选择余地。在初学阶段,我们对在初学阶段,我们对 HTML又不太熟,尽又不太熟,尽量用量用 Web控件,因为它与控件,因为它与 WINDOWS窗窗体编程的感觉更一致一些。体编程的感觉更一致一些。7、ASP.NET编程的一些重要问题编程的一些重要问题网络协议网络协议:可分为面向连接的和非连接的:可分为面向连接的和非连接的面面向向连连接接的的网网络络(如如电电话话)是是点点到到点点通通信信最最理理想想的的方式方式优优点点:建建立立连连接接后后,可可以以保保持持带带宽宽,而而且且安安全全性性好好。缺点是它的复杂性,成本高昂。缺点是它的复杂性,成本高昂。非面向连接非面向连接的网络(如信件)的代表是因特网的网络(如信件)的代表是因特网因因特特网网是是构构建建在在TCP/IP协协议议上上的的,而而HTTP是是基基于于TCP/IP的应用层协议,是的应用层协议,是非连接非连接的。的。优点:成本低廉,其规模的可扩展性。优点:成本低廉,其规模的可扩展性。缺点:不能保证信息安全送达缺点:不能保证信息安全送达7.1保持页面状态保持页面状态 HTTP协议的固有特性,给协议的固有特性,给B/S(浏览器浏览器/服服务器)结构的务器)结构的WEB编程带来很大麻烦编程带来很大麻烦页面页面无法保持自已的状态无法保持自已的状态。既每当同一个页。既每当同一个页面往返一次服务器(比如刷新页面、提交表面往返一次服务器(比如刷新页面、提交表单、激发事件),服务器不记得同一页面的单、激发事件),服务器不记得同一页面的状态变化。状态变化。当你输入信息并当你输入信息并“提交提交”,输入信息通过表,输入信息通过表单的单的 GET或或 POST方式传到服务器。方式传到服务器。当提交完返回这个页面时,输入的信息看不当提交完返回这个页面时,输入的信息看不到了,因为同一个页面往返了一次服务器,到了,因为同一个页面往返了一次服务器,服务器不记得同一页面的两次状态变化。服务器不记得同一页面的两次状态变化。解决的办法解决的办法过去通过写过去通过写Script代码去维持页面状态变化,代码去维持页面状态变化,利用利用Cookies,ASP的的Session对象等也可以对象等也可以实现,但很麻烦。实现,但很麻烦。如果一个页面有数十个状态要保持,工作量如果一个页面有数十个状态要保持,工作量很大。很大。ASP.NET用简单的方法解决了这个问题,但用简单的方法解决了这个问题,但效率倍受质疑。效率倍受质疑。WiewState对对象象是是ASP.NET中用来保存中用来保存WEB控件回传时控件回传时状态值的一种机制。状态值的一种机制。在在WEB窗体的设置为窗体的设置为runat=“server”时时,这个窗体会被附加一个这个窗体会被附加一个隐藏的隐藏的属性属性_VIEWSTATE在浏览器上看到的表单隐藏域在浏览器上看到的表单隐藏域hidden就是就是WEB窗体在客户端窗体在客户端HTML的映射。的映射。_VIEWSTATE中存放了控件在中存放了控件在ViewState中的状态值。中的状态值。ViewState是是类Control中的一个域,其他控中的一个域,其他控件通件通过继承承Control来来获得得ViewState功能。功能。它的它的类型是型是system.Web.UI.StateBag,一个一个名称名称/值的的对象集合。象集合。当当请求某个求某个页面面时,ASP.NET把所有控件的把所有控件的状状态序列化成一个字符串,然后做序列化成一个字符串,然后做为窗体的窗体的隐藏属性送到客藏属性送到客户端。端。当客当客户端把端把页面回面回传时,ASP.NET分析回分析回传的窗体属性,并的窗体属性,并赋给控件控件对应的的值。使用使用ViewState的条件的条件这些条件都是系些条件都是系统默默认的:的:要使用要使用ViewState,在在ASPX的的HTML视图中必须有一个服务器端窗体标记视图中必须有一个服务器端窗体标记。Page的的EnableViewState属性值为属性值为true控件的控件的EnableViewState属性值为属性值为true应注意的问题应注意的问题使用使用WiewState保持页面状态不需你写代保持页面状态不需你写代码。但是码。但是WiewState使用不当会造成严重使用不当会造成严重的性能问题的性能问题在复杂的页面里,尤其是涉及到数据库访在复杂的页面里,尤其是涉及到数据库访问时,问时,WiewState隐藏域隐藏域hidden的数据可的数据可能会有几十能会有几十K甚至上百甚至上百K,这么大的数据量,这么大的数据量往返传递,肯定会造成性能问题。往返传递,肯定会造成性能问题。对不需要保持状态的控件,应将对不需要保持状态的控件,应将EnableViewState属性值设为属性值设为false。7.2页面的页面的post与与get提交方式提交方式有有post与与get两种方式将客户端提交到服务器两种方式将客户端提交到服务器理论上说,理论上说,GET是从服务器上请求数据,是从服务器上请求数据,POST是发送数据到服务器。是发送数据到服务器。GET方法是把数据参数队列加到一个方法是把数据参数队列加到一个URL上,上,值和表单是一一对应的,但有大小限制。值和表单是一一对应的,但有大小限制。因为这一队列在因为这一队列在URL里,这样参数就能看到,里,这样参数就能看到,可以被记录下来或更改。可以被记录下来或更改。POST方法可以传递大量数据到服务器,用户方法可以传递大量数据到服务器,用户在浏览器端看不到这一过程。在浏览器端看不到这一过程。应注意的问题应注意的问题区别:区别:Post允许传输大量数据,而允许传输大量数据,而Get传送的数据传送的数据量会受到限制,但效率却比量会受到限制,但效率却比Post方法好。方法好。建议:建议:1、get方式的安全性较方式的安全性较Post方式差,包含机方式差,包含机密信息的话,建议用密信息的话,建议用Post数据提交方式;数据提交方式;2、做数据查询时,可用、做数据查询时,可用Get方式;而做数方式;而做数据添加、修改或删除时,建议用据添加、修改或删除时,建议用Post方式;方式;Form默认的提交方式为默认的提交方式为GET,通过属性,通过属性method=“post”可以进行修改。可以进行修改。7.3页面跳转页面跳转WEB页页面面最最大大特特点点是是有有超超连连接接,可可以以从从一个网页转到另一个网页。一个网页转到另一个网页。ASP.NET实实现现超超连连接接的的方方法法很很多多。常常用用的的有三种:有三种:1、使用、使用HyperLink控件控件2、使用按钮的、使用按钮的PostBackUrl属性属性3、使用、使用Response对象的对象的Redirect方法方法。HyperLink控件控件超链接,最简单的跳转方式超链接,最简单的跳转方式只要将其只要将其NavigateUrl属性设为目标页面属性设为目标页面即可。即可。例如:例如:NavigateUrl=/WebForm1.aspx缺点:目标页面无法获取源页面的数据缺点:目标页面无法获取源页面的数据使用按钮使用按钮PostBackUrl属性属性当为一个按钮设置当为一个按钮设置PostBackUrl属性,将属性,将其指向目标页面,点击按钮时就会跳转其指向目标页面,点击按钮时就会跳转该方法目标页面通过该方法目标页面通过Page.PreviousPage对对象,可以获得源页面控件象,可以获得源页面控件目标页面通过目标页面通过PreviousPage属性获取数据属性获取数据时,需要在页面(源)添加代码:时,需要在页面(源)添加代码:Redirect方法方法Response对象的对象的Redirect方法也是常用的方法也是常用的简单定向手段。简单定向手段。当当Web服务器接到一个重定向请求后,会服务器接到一个重定向请求后,会将一个响应头送给客户端,这将导致客户将一个响应头送给客户端,这将导致客户端发送一个新的请求到服务器。端发送一个新的请求到服务器。换句话说,一个重定向请求实际上是两个换句话说,一个重定向请求实际上是两个请求响应:一个是最初的请求响应,另一请求响应:一个是最初的请求响应,另一个是新的重定向请求响应。个是新的重定向请求响应。Redirect方法方法要注意的是该方法是一个要注意的是该方法是一个GET请求,这就意请求,这就意味着我们不能从源页面中通过重定向命令提味着我们不能从源页面中通过重定向命令提交数据。交数据。但是我们可以在重定向中使用查询字符串来但是我们可以在重定向中使用查询字符串来传递数据。例如下面代码:传递数据。例如下面代码:Response.Redirect(menu.aspx?userName=+UserName.Text);补充例题:补充例题:WebTest,演示页面跳转及传参,演示页面跳转及传参7.4几个重要的内置对象几个重要的内置对象从初始的从初始的ASP开始,就内置了一些对开始,就内置了一些对象,主要有:象,主要有:Response、Request、Session、Application、WiewState等等这些对象在这些对象在ASP.NET中都保留下来了,中都保留下来了,这些对象都是内置对象,不需实例化这些对象都是内置对象,不需实例化(new操作符)就可以使用。操作符)就可以使用。书中书中P300表表13-4给出了这些对象的简给出了这些对象的简单说明。单说明。7.4.1Response对象对象u用于向客户端发送信息,常用方法有:用于向客户端发送信息,常用方法有:1)Response.Write方法:用于将字符、字符方法:用于将字符、字符串、字符数组写入串、字符数组写入HTTP输出内容流。输出内容流。例如:例如:Response.Write(thisisatest.);2)Response.WriteFile方法:用于将指定的方法:用于将指定的文件写入文件写入HTTP输出内容流。输出内容流。例如:例如:Response.WriteFile(test.txt);3)Response.Redirect方法:用于将客户端重方法:用于将客户端重定向到新的定向到新的URL。例如:例如:Response.Redirect(test.aspx);7.4.2Request对象对象u获取请求页面的获取请求页面的HttpRequest对象。该对对象。该对象使象使服务器能获取客户端在服务器能获取客户端在Web请求期请求期间发送的间发送的HTTP信息。信息。例如:例如:Request.Browser.Platform:客户端使用的客户端使用的操作系统操作系统Request.Browser.Type:客户端使用的浏览客户端使用的浏览器类型器类型Request.UserHostAddress:客户端客户端IP地址地址7.4.3Application对象对象u是一个是一个应用程序级应用程序级的对象,它包含的数据可以的对象,它包含的数据可以在整个在整个Web站点中被站点中被所有用户使用所有用户使用,在网站,在网站运行期间持久地保存数据。运行期间持久地保存数据。u可以利用可以利用Application对象可以定义类似于所对象可以定义类似于所有用户公用的全局变量。有用户公用的全局变量。对对Application对象进行操作时,需要先进行锁对象进行操作时,需要先进行锁定,操作完成后再解除锁定。例如定,操作完成后再解除锁定。例如:Application.Lock();Applicationcounter=(int)Applicationcounter+1;Application.UnLock();7.4.4Session对象对象u用来区分不同的浏览器客户。用来区分不同的浏览器客户。u当不同的浏览器访问服务器时,服务器会分别当不同的浏览器访问服务器时,服务器会分别为其分配一段内存空间用于保存不同用户的数为其分配一段内存空间用于保存不同用户的数据信息据信息,即即每一个客户都有自己的每一个客户都有自己的Session。u定义与使用定义与使用Session的方法的方法:Sessiononline=true;Sessioncounter=(int)Sessioncounter+1;7.5Page事件处理函数事件处理函数Page类类相相当当于于WINDOWS窗窗体体的的Form类类,是是WEB页面的基类,它的主要事件有:页面的基类,它的主要事件有:Page_Init:页面初始化引发的事件页面初始化引发的事件Page_Load:加载页面时引发的事件加载页面时引发的事件Page_UnLoad:页面从内存中卸载时引发页面从内存中卸载时引发Page_Init和和Page_Load事事件件区区别别在在于于:只只有有后者才能完全加载控件,绑定数据。后者才能完全加载控件,绑定数据。Page_Load事件事件每当建立一个每当建立一个ASP.NETWEB程序,程序,IDE都都会自动写一个会自动写一个Page_Load事件处理函数:事件处理函数:protectedvoidPage_Load(objectsender,System.EventArgse)把把每每次次加加载载页页面面时时都都需需要要执执行行的的一一些些网网页页的的初初始始化化代代码码放放在在这这里里是是最最合合适适的的。如如一一些些控控件件的的数据绑定。数据绑定。但是,但是,每次每次当页面被发送回服务器,当页面被发送回服务器,Page就就会被会被重新加载重新加载,启动,启动Page_Load事件,执行事件,执行Page_Load事件处理程序中的所有代码。事件处理程序中的所有代码。如果希望只在网页如果希望只在网页第一次第一次加载时执行一些代加载时执行一些代码,我们可以利用码,我们可以利用Page类的类的IsPostBack属属性来完成这一功能。性来完成这一功能。在网页在网页第一次第一次加载时,该属性的值是加载时,该属性的值是false。如果网页因如果网页因回送回送而被重新加载,而被重新加载,IsPostBack属性的值为属性的值为true。可在可在Page_Load用以下初始化页面的代码:用以下初始化页面的代码:if(!Page.IsPostBack).7.6控件的事件控件的事件WEB控控件件的的属属性性窗窗口口有有闪闪电电(事事件件)图图标标,可可以以在在此此给给WEB控控件件建建一一个个事事件件处处理函数。理函数。但是但是HTML控件控件的属性窗口没有闪电的属性窗口没有闪电(事件)图标,把它设为服务器执行,则(事件)图标,把它设为服务器执行,则双击控件,可建一个双击控件,可建一个onclick事件处理函事件处理函数,可在此方法中写数,可在此方法中写javascript。此时实际是在客户端执行的。此时实际是在客户端执行的。每当点击每当点击ASP.NET网页上的的网页上的的Web控件时,控件时,窗体就会被发送到服务器上。窗体就会被发送到服务器上。如果控件的如果控件的AutoPostBack属性被设置为属性被设置为true,那么当该控件的状态被改变后,也会使表那么当该控件的状态被改变后,也会使表单发送回服务器。单发送回服务器。如果这个属性被设置成如果这个属性被设置成false,那么点击后不那么点击后不会立刻将变化传给服务器处理。会立刻将变化传给服务器处理。编写编写WEB应用程序应注意应用程序应注意:查询数据库返回的结果集应尽可能小;查询数据库返回的结果集应尽可能小;WiewState要尽可能少;要尽可能少;尽量减少往返服务器的次数,尽量不用事件尽量减少往返服务器的次数,尽量不用事件7.7Web.config文件文件是一个是一个XML文本文件,用来储存文本文件,用来储存ASP.NETWeb应用程序的配置信息。应用程序的配置信息。例如常用来设置例如常用来设置 ASP.NETWeb应用程序的应用程序的身份验证方式。身份验证方式。当你新建一个当你新建一个 Web应用程序后,默认情况下应用程序后,默认情况下会在根目录自动创建一个默认的会在根目录自动创建一个默认的 Web.config文件,包括默认的配置。文件,包括默认的配置。Web.config文件文件所有的子目录都继承它的配置设置。所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,可以在如果你想修改子目录的配置设置,可以在该子目录下新建一个该子目录下新建一个 Web.config文件。文件。它可以提供除从父目录继承的配置信息以它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录外的配置信息,也可以重写或修改父目录中定义的设置。中定义的设置。8.常用常用Web服务器控件服务器控件Web服务器控件在使用上和服务器控件在使用上和Windows窗体窗体控件很相似,但是由于网络支持的限制,一控件很相似,但是由于网络支持的限制,一般属性及事件要少一些。般属性及事件要少一些。要注意要注意Web服务器控件的属性、方法、事件服务器控件的属性、方法、事件全都是在服务器端执行全都是在服务器端执行的。的。用户通过客户端浏览器操作用户通过客户端浏览器操作Web页面时,对页面时,对Web控件的每个请求都要发送到服务器端,控件的每个请求都要发送到服务器端,服务器处理后,再将处理结果转换为客户端服务器处理后,再将处理结果转换为客户端脚本发送到客户端显示。脚本发送到客户端显示。8.1简单控件简单控件lButton类控件类控件u有三种类型的按钮控件:有三种类型的按钮控件:uButton控件:与控件:与Windows窗体的窗体的Button控件控件用法相同。用法相同。uLinkButton控件:外观与控件:外观与Hyperlink控件相同,控件相同,但在功能上与但在功能上与Button控件完全相同。控件完全相同。uImageButton控件:以图片形式显示的按钮。控件:以图片形式显示的按钮。u单击时都可以将窗体提交给服务器,并触发服单击时都可以将窗体提交给服务器,并触发服务器端对应的务器端对应的Click事件。事件。TextBox控件控件1.常用的基本属性常用的基本属性1)AutoPostBack属性:控件中文本修改后,是否自属性:控件中文本修改后,是否自动回发到服务器。该属性动回发到服务器。该属性默认值为默认值为false。2)TextMode属性:用于设置文本框接受文本的行为属性:用于设置文本框接受文本的行为模式。共有三种属性值:模式。共有三种属性值:MultiLine(多行输入模式)(多行输入模式);Password(密码输入模式);(密码输入模式);SingleLine(单行(单行输入模式、默认)。输入模式、默认)。2.常用的事件常用的事件TextChanged事件:文本框的内容发生更改导致窗事件:文本框的内容发生更改导致窗体回发服务器时触发。注意,是否触发该事件与体回发服务器时触发。注意,是否触发该事件与AutoPostBack属性有关,属性有关,少用,客户端来处理!少用,客户端来处理!CheckBox与与CheckBoxList控件控件uCheckBox与与CheckBoxList控件都是用于控件都是用于向用户提供选项和选项列表。向用户提供选项和选项列表。uCheckBox:一个可选项:一个可选项uCheckBoxList:一组可选项:一组可选项u当选项比较多时,或者在运行时动态的决当选项比较多时,或者在运行时动态的决定有哪些选项时,使用定有哪些选项时,使用CheckBoxList控件控件比较方便。比较方便。1.CheckBox控件的常用基本属性控件的常用基本属性AutoPostBack属性:状态更改后是否自动回发到属性:状态更改后是否自动回发到服务器处理。该属性默认值为服务器处理。该属性默认值为false。2.CheckBoxList控件的常用基本属性控件的常用基本属性1)Items属性:表示控件对象中所有项的集合。属性:表示控件对象中所有项的集合。2)RepeatColumns属性:控件中显示属性:控件中显示CheckBox项的列数。项的列数。3)RepeatDirection属性:决定控件中各项的显示属性:决定控件中各项的显示排列方式。默认值是排列方式。默认值是Vertical。3.CheckBoxList控件的常用基本事件控件的常用基本事件CheckedIndexChanged事件:更改事件:更改CheckBoxList控件中的选项,回发服务器时触发。控件中的选项,回发服务器时触发。RadioButton与与RadioButtonList控件控件注意与注意与Windows控件控件RadioButton的区别:的区别:u在在Windows窗体中,在同一容器中的所有窗体中,在同一容器中的所有RadioButton控件都默认为同一组,只能在控件都默认为同一组,只能在这些控件中进行单选;这些控件中进行单选;uWeb窗体中,默认情况下会将同一容器中的窗体中,默认情况下会将同一容器中的所有所有RadioButton服务器控件作为服务器控件作为不同组不同组,可以多选。如果希望将其作为一组,需要设可以多选。如果希望将其作为一组,需要设置置RadioButton的的GroupName属性。属性。RadioButtonList服务器控件是封装了一组服务器控件是封装了一组单选按钮控件的列表控件。单选按钮控件的列表控件。其主要的属性、事件与其主要的属性、事件与CheckBoxList服务服务器控件相同。器控件相同。ListBox和和DropDownList控件控件ListBox为列表框控件,而为列表框控件,而DropDownList是下拉列表控件,类似于是下拉列表控件,类似于Windows窗体中窗体中的的ComboBox。它们主要的属性都有它们主要的属性都有Items、AutoPostBack属性。属性。而而ListBox有有SelectionMode属性,用于指定属性,用于指定控件的选择模式,当属性值设置为控件的选择模式,当属性值设置为Multiple时,可以选择多个。时,可以选择多个。常用事件为常用事件为SelectedIndexChanged事件。事件。例例14-1:Web窗体简单控件综合示例。窗体简单控件综合示例。8.2Table控件控件Table控件往往用来构造表单的排版与布局。控件往往用来构造表单的排版与布局。Table控件以控件以TableRow为基本单位为基本单位TableRow以单元格以单元格TableCell为基本单位为基本单位Table控件的控件的Rows属性为所有行集合属性为所有行集合类似,类似,TableRow有有Cells属性属性 仅仅是为了排版的话,建议使用仅仅是为了排版的话,建议使用HTML的的Table元素元素Table控件例题控件例题【例例14-2】Table控件用法示例控件用法示例(复杂!)(复杂!)u本例有两处要重点掌握,一是如何通过代码添本例有两处要重点掌握,一是如何通过代码添加加Table的行,一是对的行,一是对ViewState的操作。的操作。uList对象泛型的使用,有余力同学自己学。对象泛型的使用,有余力同学自己学。8.3HiddenField控件控件HiddenField控件正如其名,是一个隐藏域,控件正如其名,是一个隐藏域,因此不会在界面中显示。因此不会在界面中显示。适用场合:适用场合:存储用户供页面使用或回传,但不希望显存储用户供页面使用或回传,但不希望显示出来的数据示出来的数据安全性不高,因为实际值可以在页面源代安全性不高,因为实际值可以在页面源代码中看到。码中看到。基本属性基本属性Value属性,注意不是属性,注意不是text属性。属性。HiddenField控件控件【例例14-3】复选框控件示例。复选框控件示例。u该例有问题,首先题目就错了,关键是该例有问题,首先题目就错了,关键是ValueChanged事件并不能触发。事件并不能触发。u原因和页面加载顺序有关,真正想搞好原因和页面加载顺序有关,真正想搞好Web应用开发,应该仔细研究下这篇文章:应用开发,应该仔细研究下这篇文章:http:/