版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第页ASP课程知识一、网页基础知识HTML是英文HyperTextMarkupLanguage的缩写,中文的意思是超文本标记语言。它是通过嵌入代码或标记的方式来表明文本格式的国际标准。用它编写的文件扩展名是.html或.htm,这种网页文件的内容是静态的,而且无法及后台数据库结合使用。在网站开发中,XML的应用也相当广泛,ASPWeb应用程序的配置文件machine.config及web.config文件都是基于XML文档的,甚至连ADO中的DataSet对象,其内部也是采用XML描述的。XML即可扩展标记语言(ExtensibleMarkupLanguage),用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML是标准通用标记语言(SGML)的子集,非常适合Web传输。前面已经指出,使用纯粹的HTML格式的网页时静态网页,下面区分一下静态网页和动态网页。在网站设计中,纯粹HTML格式的网页通常被称为静态网页,早期的网站一般都是由静态网页制作的。静态网页是相对于动态网页而言,是指没有后台数据库、不含程序和不可交互的网页。你编的是什么它显示的就是什么,不会有任何改变。静态网页相对更新起来比较麻烦,适用于一般更新较少的展示型网站。静态网页的网址形式通常为htm(超文本标记语言)结尾,还有就是以超文本标记语言(.htm、.html)、.shtml、.xml(可扩展标记语言)等为后缀的。所谓动态网页是指网页文件里包含了程序代码,通过后台数据库及Web服务器的信息交互,由后台数据库提供实时数据更新和数据查询服务。动态页面依靠浏览器端和服务器端的互动来实现,服务器端可以实时处理浏览器端的请求,然后将响应结果传递给浏览器,这样动态页面就显示在浏览器中了。这种网页的后缀名称一般根据不同的程序设计语言不同,如常见的有.aspx、.asp、.jsp、.php等形式为后缀。动态网页能够根据不同请求和不同访问者而显示不同内容。如常见的BBS、留言板和购物系统通常用动态网页实现。动态网页的制作相对复杂,需要用到ASP、PHP、ISP和ASP等专门的动态网页设计语言。二、ASP基础知识2000年6月,Microsoft公司推出了技术框架,ASP则是该框架的一部分。Framework的的核心组件是Framework基础类库和公共语言运行库。作为一种新的Web技术,ASP提供了多种方便实用的新功能,譬如具有丰富的Web控件,引入了ADO,对多种开发语言提供支持,可以选择采用代码后置技术/代码隐藏模型,使得后台程序代码及前台页面文件分开,同时支持更多的事件处理。【了解】ASP是在ASP的基础上发展起来的,由于具有方便、灵活、高效、安全等特点,成为了目前主流的Web开发技术之一。然而,ASP不只是ASP的一个升级版本,其许多新功能也不仅仅是对ASP的改进,因此ASP是创建Web应用程序的全新理念和方法,它及ASP的主要区别有以下几点:(1)ASP只能使用脚本语言,主要依靠VBScript和JavaScript。ASP则没有这个问题,它可以使用Framework支持的任何一种功能完善的编程语言。(2)ASP中,ASP代码及HTML代码没有分开,各种混杂的代码不方便前期的设计和后期的维护。在ASP中,通过采用代码后置技术,这个问题得到了解决。(3)ASP带有大量的控件,可以非常简单地用在Web页面当中。而在ASP中,程序员就需要利用对象和几个组件来完成在ASP中非常容易实现的功能。在ASPWeb应用程序中,可以采用代码后置方式,也可以采用代码内嵌的方式,也可以采用两者混合的方式,网站开发人员可以根据实际情况进行选择。代码后置是微软的一项技术,也是我们编写ASPWeb应用程序时常用的编码方式。一般情况下,采用代码后置技术时,ASPWeb页面对应的.asp文件中没有程序代码,只有控件和HTML代码,而在.cs中编写相关的后台C#代码。及代码后置相对应的是代码内嵌,可以不使用后置的.cs文件,完全在.asp文件中编写代码,我们只需在创建页面时,不选择“将代码放在单独的文件中”复选框,将代码编写在<%%>之间就可以了。采用代码后置技术的好处是后台程序代码和前台页面内容分离,使网站代码结构更清晰,可读性好,便于编写和维护。前面已经指出,ASP相比ASP而言支持更多的事件处理。我们知道,普通的Windows应用程序也支持事件模型。ASP中的Web窗体事件模型和Windows事件模型有相似的地方,也有区别。ASP采用类似于Windows的事件处理程序,当用户在Web窗体中执行某一个动作时,将触发一个事件,程序员可以针对这些事件编写程序,对用户操作进行响应。Web窗体的事件模型及Windows事件并不完全相同。Windows事件的事件触发和事件处理都在本地发生。例如,用户单击Windows窗体中的一个按钮,可以触发该按钮的Click事件,程序员可以为事件响应程序中编写代码,响应用户的操作。Web窗体事件则是由用户在客户端触发事件,事件响应程序在服务器端执行,然后再将执行结果返回到客户端。IIS是InternetInformationServer的缩写,即Internet信息服务,它是Microsoft公司开发的Web服务器应用程序,IIS可以方便地建立强大、灵活而安全的Internet站点,而且它完全支持ASP技术。在WindowsXP等操作系统中,默认的系统安装中并没有包含IIS,我们需要掌握安装IIS的方法和步骤:首先,在操作系统中打开控制面板,双击“添加或删除程序”,在弹出的对话框中,选择”添加或删除Windows组建”,在弹出的下一个对话框中,选中“Internet信息服务(IIS)”,然后根据提示一步一步操作,就可以实现IIS的安装。简而言之,IIS可以通过添加Windows组件安装。在一台用作Web服务器的电脑上,可以同时运行多个Web站点,因为IIS可以同时管理多个Web应用程序。IIS的功能强大,不仅能够管理Web站点,也能管理FTP站点。IIS中,网站的默认端口是80,当然,我们可以修改这一默认的设置。IIS中,默认文档的文件名一般为default或index,扩展名则可以是.htm、asp或aspx等已为服务器支持的文件扩展名。当然,IIS中,网站的默认文档文件名不一定非得是default或index,我们可以设置为任意其他合法的文件名。ASPWeb应用程序的开发中,会牵涉到多种类型的文件,这些文件的作用不一样,后缀名也不一样,在此以表格的形式加以分类比较。表1ASPWeb项目中的文件类型汇总文件类型文件后缀名或全称备注静态页面文件.htm或者.htmlASP前台页面文件.aspxASP页面后台C#程序文件.aspx.csC#程序或类文件.cs全局程序类文件Global.asaxASP母版页文件.master用户控件文件.ascxASP服务器配置文件Machine.configASPWeb程序配置文件Web.config三、ASP页面类及常用内置对象。Framework包含了大量的对象类库,这些对象类库为提供了可以使用的功能。编程人员只要编写较少的代码,就可以简单快速地完成工作。下面简要讨论ASP中最常用的Page类以及最核心的对象Request、Response、Server、Application、Session以及Cookies。在FrameWork中,Page类是ASP应用程序在.aspx文件中构建所有对象的基类。Page类在System.Web.UI空间中定义。Web页面从初始化、加载到页面卸载,会经历页面模型生命周期的各个阶段,触发各种事件,其中,页面加载时触发的事件是Page_Load,页面卸载时触发的事件是Page_Unload。Page对象具有很多属性,这里讨论IsValid属性和IsPostBack属性。在ASP中,页面的IsValid属性用于获取一个布尔值,该值用于指示页验证是否成功,如果为true,则验证通过,否则意味页面没有通过验证。在ASP中,要判断页面是第一次加载运行还是由于客户端返回数据而加载运行,必须通过Web页面的IsPostBack属性。IsPostBack属性是布尔类型的。若Web页的IsPostBack的值为false,则表示该页面是第一次加载运行;若Web页的IsPostBack的值为true,则表示当前网页是由于客户端返回数据而加载的。Response对象称为响应对象,表示Web服务器对客户请求的响应,将信息传递给用户。使用Response对象的Write方法,可以将字符串输出到网页中,当然,该方法并不是讲数据直接显示在网页中,而是输出到HTML代码中。使用Response对象的Redirect方法,可以实现网页转向,就是在浏览器中显示新网页的内容。使用Response对象还可以写入Cookies数据。特别需要注意的是,在ASP中,使用Response.Write方法输出字符串时,字符串中不能直接包含双引号“””,否则会发生歧义。如果需要在网页中输出双引号字符,需要用“\”“替换“”“。Request对象也称为请求对象,通过它可以从客户端接收信息,这些信息包括通过网址参数传递的信息、HTML表单中用POST或GET方法传递的参数和Cookies等。Server对象是用于获取服务器的相关信息的对象,它对应的ASP类是HttpServerUtility。使用Server.MapPath方法可以将虚拟路径转换为服务器上的实际物理目录。用法如下所示:<真实物理路径>=Server.MapPath(<虚拟路径>)Application对象,也称记录应用程序参数的对象,其用途是记录整个网站的信息,是集中的网站范围内的变量存储方式,可以在网站内部的任何地方使用。另外,Application对象可以提供给多个客户端用户共享信息,即所有的客户端用户都可以访问Application对象中保存的数据。在程序中,访问Application对象的操作主要有读操作及写操作。其中,写操作表示添加数据或值到Application对象中;读操作表示从Application对象中取到数据。为了防止两个以上的用户同时访问Application对象,可以使用Application.Lock方法将Application对象锁定,访问完成后使用Application.UnLock方法解除锁定,示例代码如下:protectedvoidPage_Load(objectsender,EventArgse)Response.Write("<h2align=\"center\"><fontcolor=\"#0000FF\">网站计数器的演示程序</font></h2>");Application.Lock();if(Application["Counter"]==null)Application["Counter"]=1;elseApplication["Counter"]=int.Parse(Application["Counter"].ToString())+1;Response.Write("<palign=\"center\">您是本站第"+Application["Counter"].ToString()+"位访客,欢迎光临</p>");Application.UnLock();对Web应用程序而言,Global.asax文件是一个可选文件,网站开发人员可以在该文件中指定跟Application对象相关的某个事件发生时执行的代码。换言之,及Application对象相关的Application_Start、Application_Error和Application_End等事件都应该在Global.asax文件中定义。Global.asax文件必须存放在应用程序的根目录中,而且每个应用程序只能有一个Global.asax文件。当然,Global.asax文件既然是一个可选文件,意味着一个网站中可以连一个Global.asax文件。ASPWeb应用程序在用户首次打开应用程序中的某一网页时启动,在服务器关闭时终止。在此期间,Application对象都是一直有效的。使用Session对象可存储特定的用户会话所需的信息。当用户在应用程序(即网站)的页面之间跳转时,存储在Session对象中的变量不会清除。当超过设置Session变量对象的有效时间时,Session变量就会消失。Session对象的变量默认的有效期为20分钟。Application对象及Session对象是有区别的,两者的差异主要体现为如下三点:1.共享及独享。Application对象记录的是所有浏览器端共享的变量,而Session对象只记录单个浏览器端专用的变量。即每个访问网站的浏览器用户具有各自的Session对象变量,但共享一个Application对象。2.生存期不同。Session对象的变量具有有效期,超过该有效期则消失。Application对象的变量在Web服务器软件关闭或重启之前一直有效,并不会因为个别或所有终端用户关闭浏览器而消失。3.操作方法不同。Session对象需要设置生存期,Application对象则不必设置生存期。Application对象由于是共享的,在操作相关变量的时候,需要加锁和解锁操作,Session对象则不必如此。Session对象有两个事件,即Session_Start和Session_End。可以在全局文件Global.asax中为这两个事件指定执行的代码。当会话开始时,服务器在Global.asax文件中查找并处理Session_Start事件对应的代码;在会话结束时,服务器将处理Session_End事件对应的代码。Cookies及Session和Application对象类似,也是一种集合对象,都用来保存数据。但Cookies和其他对象的最大不同在于Cookies将数据存放在客户端的磁盘上,而Application和Session对象将数据存放在Web服务器上。通过Response对象可以写入Cookies数据,使用Request对象既可以读取也可以写入Cookie数据。设定Cookie变量的生命周期,使用Cookie变量的Expires方法,其语法如下:Response.Cookies(CookieName).Expires=#日期#四、ASP控件。ASP的服务器控件分为Web服务器控件、HTML服务器控件和用户自定义控件三大类。对于ASPWeb开发,离不开这些控件的运用,因此,对于一些常用控件的重要属性、方法和事件,我们一定要熟练掌握并灵活运用。下面,先简要介绍Web服务器控件。对于所有的Web服务器控件,有一些重要属性是相同的,例如ID、Enabled、Visible、AccessKey、AutoPostBack等属性。ID属性是控件的名称,在同一个页面中要求每个控件都使用唯一的ID来标识。Enabled属性决定在最终页面上控件能否响应用户的操作,取值为false,则控件不可用。Visible属性决定控件在运行页面上的可见性,取值为false,则控件在页面上不可见。AccessKey属性用于设置控件使用的键盘快捷键。AutoPostBack属性是绝大多数Web服务器控件都具有的属性,如果希望控件内容变换后立即回传表单至Web服务器,则需要将控件的AutoPostBack属性设置为true。Label也称为标签控件,一般用来给文本框、列表框、组合框等控件添加描述性的文字,或给窗体添加说明文字,或用来显示处理结果等信息。Label控件显示的内容可以在属性窗口中设定,也可以在程序运行时编写代码进行修改。Label控件最重要的属性是Text属性,该属性显示用户的文本信息。TextBox也称为文本框控件,用于让用户在Web页面中输入文本信息,在某些情况下,也可以用来显示文本信息。TextBox控件的重要属性如下表所示。属性名称说明Text控件显示的文本TextMode该属性只能取SingleLine、MultiLine和Password,对应的显示模式分别是单行、多行或密码文本。ReadOnly防止用户更改文本MaxLength文本框中所允许输入的最大字符数AutoPostBack设置为True时,当用户更改内容后离开控件时,导致控件触发TextChangedpostback事件。默认情况下设置为False.TextChanged事件TextBox控件所能响应的最重要的事件。当用户输入信息后离开TextBoxWeb服务器控件时,控件引发程序员可以处理的此事件。VS2019提供了四种类型的控制权转移控件,它们分别是按钮(Button)控件、图片按钮(ImageButton)控件、超链接按钮(LinkButton)控件和超链接(HyperLink)控件。Button控件是一个标准的提交按钮,使用它可以完成把信息反馈给服务器的操作。其常用属性和事件如下表所示。属性或者事件名称说明Text属性获取/设置按钮上显示的文本Enabled属性如果该属性的值为False,则按钮不可用Click事件单击按钮时会引发该事件,且包含该按钮的窗体会提交给服务器及Button按钮一样,单击ImageButton控件也可以将信息反馈给服务器,并驱动某一事件过程。两者不同的是,ImageButton控件是一个图片按钮,可以用它来链接一个图片。其常用的属性或事件如下表所示。属性或者事件名称说明Text属性获取/设置按钮上显示的文本(VS2019无此属性)Click事件单击按钮时会引发该事件,且包含该按钮的窗体会提交给服务器ImageURL属性指定按钮图像的URL(图像需要通过解决方案资源管理器添加进项目)LinkButton控件的作用及Button控件的作用完全一样。只不过Button控件是以按钮的形式显示的,而LinkButton控件是以文字链接的形式显示。HyperLink控件除了可以链接文字以外,还可以链接图片。此控件没有公开事件,它的常用属性如下表所示。属性名称说明Text链接的文本标签Target链接的目标窗口或框架。可能的值为_top、_self、_parent、_search或_blankNavigateURL单击链接时用户即将链接到的页面的URLImageURL指定用于链接的图像的URL在VS2019中,提供选择的Web服务器控件有CheckBox(复选框控件)、CheckBoxList(复选框列表控件)、RadioButton(单选按钮控件)、RadioButtonList(单选按钮列表控件)、ListBox(列表框控件)、DropdownList(下拉列表框控件)。CheckBox控件和CheckBoxList控件是两个用于实现复选操作的服务器控件。CheckBox控件是一个方型多选控件,多个CheckBox控件可以组合成一个CheckBoxList控件,在效果上是一致的,即CheckBoxList控件可以作为CheckBox控件的父控件。CheckBox控件和CheckBoxList控件具有相同的属性Checked,当该属性取值为true时,表示控件被选中。RadioButton控件是单项选择按钮控件,多个RadioButton控件组合在一起就可以形成一个RadioButtonList控件。即RadioButtonList控件可以作为RadioButton控件的父控件。RadioButton控件的常用属性和方法如下表所示。属性或方法说明Text获取或设置及CheckBox关联的文本值TextAliagn获取或设置及CheckBox控件关联的文本的对齐方式GroupName获取或设置单选按钮所属的组名EnableViewState控件是否保留ViewState状态CheckedChanged当控件的Checked属性的值在向服务器进行发送期间更改时发生Load当服务器控件加载到Page对象中时发生的事件GroupName是RadioButton控件的一个重要属性,利用它,可以使得同一Web页面上的多个RadioButton控件具有互斥作用。在一个Web页面中使用多个RadioButton控件,它们并不会自动具有互斥的作用。只有网页开发人员将这些RadioButton控件的GroupName属性设为一样,这些控件才能组成一组有关联的单选控件,此时,在组内只能选择一个RadioButton控件,即这些RadioButton控件具有互斥的作用。下拉列表框控件(DropDownList)是一个用下拉框形式显示选项的控件,它的功能及RadioButtonList控件很类似,允许用户从预定义下拉列表中选择一项。列表框(ListBox)控件可用于设计单选或多选的列表框。该控件及DropDownList用法很相似,主要有两点不同:一是其选择项按设置列出,而不像DropDownList控件那样将选项隐藏;二是它允许选择多项,而DropDownList控件只允许单选。ASP有两种WEB服务器控件,即PlaceHolder控件和Panel控件。PlaceHolder控件是ASP控件中比较特别的一个控件,该控件可以作为其他控件的容器。使用该控件可以再程序动态运行时,可以把子控件添加到页面的特定位置上。Panel控件和PlaceHolder控件一样,可以作为其他控件的容器。可以对Panel控件中包含的所有控件进行统一配置,例如同时控制多个子控件的可见性和可用性,而不需要繁琐地设置每个子控件的Visible属性或Enabled属性。其他高级控件是用于特定用途的控件,只能用于特殊任务。此处只简单介绍AdRotator控件和Calendar控件。AdRotator,即广告控件,用于显示横幅广告集合中的随机选择内容,该集合在基于XML的广告文件中指定。Calendar,即日历控件,允许开发人员提供基于日历的界面,用于选择日期或查看及日期相关的数据。Calendar控件基于FrameworkDateTime对象,因此支持该对象所允许的全部日期范围,可以有效地显示公元0~9999年之间的任意日期。下面简要介绍HTML服务器控件。HTML服务器控件是在HTML网页标记基础上产生的。HTML网页标记只能用于客户端编程,为了使服务器端编程能够直接操作HTML网页标记,于是在ASP中引入了HTML服务器控件。几乎任何HTML标记都可以转换为HTML服务器控件,转换的方法是在标记中添加Runat=“server”属性。HTML服务器控件及HTML标记的关系如下图所示。如果要在代码中作为成员引用HTML控件,还应当为控件分配ID属性。例如:<FormRunat=“server”Id=“TestPage”></Body><InputRunat=“server”Id=“Btn”Type=“Submit”OnServerClick=“OP”></Input>HTML服务器控件的基本语法:<HTML标记Id=“控件名称”Runat=“Server”>由于HTML控件是由HTML标记所衍生出来的新功能,因此在所有的HTML控件的语法中,最前端是HTML标记,不同的控件用不同的标记;Runat=“Server”表示控件将会在服务器端执行;Id用来设置控件的名称,在一个程序中各控件的Id均不相同,具有唯一性。Id属性允许以编程方式引用该控件。HTML服务器控件有几个共同的属性会经常被使用,它们是:Innerhtml、InnerText、Disabled、Visible、Value、Attributes。(1)InnerHtml属性。获取或设置控件的开始标记和结束标记之间的内容,但不自动将特殊字符转换为等效的HTML实体。(2)InnerText属性。获取或者设置控件的开始标记和结束标记之间的内容,并自动将特殊字符转换为等效的HTML实体。(3)Value属性。该属性用来获取各种输入字段的值,包括HtmlSelect、HtmlInputText等。(4)Attributes属性。该属性是服务器控件标记上表示的所有属性名称和值的集合。使用该属性可以用编程方式访问HTML服务器控件的所有特性。使用Attributes属性的语法是:控件名称.Attributes(“属性名”)=“属性值”。例如,Button1.Attributes(“Value”)=“确定”,该语句的功能是将Button1的Value属性设置为“确定”。(5)Disabled属性。获取或设置一个True或False值。True表示HTML服务器控件被禁用,False表示HTML服务器控件未被禁用。(6)Visible属性。获取或设置一个True或False值,该值指示服务器控件是否显示在页面上。True表示可见,False表示不可见。到目前为止,我们介绍了Web服务器控件、HTML服务器控件等控件,这些控件都是ASP内置的。如果有特殊需求,可以创建可重复使用的自定义控件,这些控件称作用户控件。用户控件是一种复合控件,它的工作原理非常类似于ASP网页。可以在用户控件中添加Web服务器控件和标记,并可以定义控件的属性和方法。用户控件文件的扩展名为.ascx。用户控件中默认包含的代码如下:<%@ControlLanguage="C#"AutoEventWireup="true"CodeFile="WebUserControl.ascx.cs"Inherits="WebUserControl"%>一般说来,用户控件和ASP页面具有如下区别:1.用户控件的文件扩展名为.ascx,ASP页面的则为.aspx。2.用户控件中包含“@Control”指令,用来定义用户控件专有属性;ASP页面则包含“@Page”指令定义页面专有属性。3.用户控件不能作为独立文件运行,而必须像处理任何其他控件一样,将他们添加到ASP页面中;ASP页面可作为独立文件运行。4.用户控件中不能包含html、body或form元素,ASP页面则相反。在Web窗体中添加一个@Register指令,用于注册用户控件,代码如下:<%@RegisterTagPrefix="uc"TagName="WebUserControl"Src="WebUserControl.ascx"%>在VS2019可视化环境中,只要在资源管理器中拖动用户控件到Web窗体,就可将用户控件添加到Web窗体中。同时,注册用户控件的@Register指令代码将自动生成。五、ASP验证控件ASP提供了许多验证控件,用以检查输入并使验证数据更加简单方便。及其他服务器控件一样,验证控件也被添加在ASP页面中。VS2019提供了六种验证控件,如下表所示。验证控件说明RequiredFieldValidator非空验证控件CompareValidator比较验证控件RangeValidator范围验证控件RegularExpressionValidator正则表达式验证控件CustomValidator自定义验证控件ValidationSummary验证总结控件RequiredFieldValidator控件被称为非空验证控件,常用于对TextBox控件进行非空验证。如果在网页上使用了非空验证控件,当用户提交网页到服务器时,系统会自动检查被验证控件的输入是否为空;如果为空,则网页显示错误信息。定义RequireFieldValidator控件的代码如下:<asp:RequiredFieldValidatorID="RequiredFieldValidator1"runat="server"ErrorMessage="错误信息!"ControlToValidate="txtUserName"></asp:RequiredFieldValidator>使用<asp:RequiredFieldValitator>表示来定义控件,ErrorMessage属性用于指定未通过验证时显示的错误信息,ControlToValidate属性用于指定待验证的TextBox控件。CompareValidator控件也被称之为比较验证控件,它是用来验证两个控件的值或者控件及某个值之间的关系。CompareValidator控件的几个重要属性及其说明如下表。属性名说明ControlToCompare要及所验证的输入控件进行比较的输入控件的IDOperator要执行的比较操作Type对控件的值按照哪种方式进行比较,默认StringValueToCompare设置要及所验证的控件的值进行比较的值因为在输入控件中可以输入货币、浮点数、整数及字符串等,所以需要设置控件的值按照什么类型的值进行验证。CompareValidator控件可以进行验证的类型如下表所示。类型说明Currency按货币类型比较,小数点后最多两位数字Date按日期类型比较(不带时分秒)Double按浮点数类型比较Integer按整数类型比较String按字符串类型比较在进行验证的时候,还可以指定两个值之间满足什么关系才能通过验证,这个关系可以通过设置Operator属性来指示,分别有<(LessThan)、<=(LessThanEqual)、!=(NotEqual)、=(Equal)、>(GreaterThan)及>=(GreaterThanEqual)。如果要将所验证的控件的值及某个指定的值进行比较,那么不必设置ControlToCompare属性的值,而应设置ValueToCompare属性的值。
注意:请不要同时设置ControlToCompare属性和ValueToCompare属性,如果同时指定了这两个属性,则ValueToCompare属性优先。需要进一步指出的是,在asp中除了RequiredFieldValidator控件之外,使用CompareValidator控件、RangeValidator控件和RegularExpressionValidator控件进行验证时,所验证的控件如果没有任何输入也是能通过验证的,但是如果输入的数据不符合验证规则就不能通过验证。要是要求用户必须输入并且还要符合一定规则,上述的控件就需要结合RequiredFieldValidator控件共同验证。RangeValidator控件也称之为范围验证控件,也就是只有当用户填写的非空数据不在指定的范围之间时就不能通过验证。RangeValidator控件的重要属性如下表所示。属性名说明MaximumValue允许的最大值MinimumValue允许的最小值Operator要执行的比较操作Type对控件的值按照哪种方式进行比较,默认String该控件能够对以下5种数据类型的数据进行验证:(1)String,用来验证字符串;(2)Integer,用来验证整数;(3)Date,用来验证日期;(4)Double,用来验证双进度数;(5)Currency,用来验证货币。RegularExpressionValidator控件又被称为正则表达式验证控件,它的验证功能比其他验证控件更强大,用户可以定义或书写自己的验证表达式。定义RegularExpressionValidator控件的代码如下:<asp:RegularExpressionValidatorID=“RegularExpressionValidator1”runat=“server”ErrorMessage=“RegularExpressionValidator”></asp:RegularExpressionValidator>RegularExpressionValidator控件的常用属性如下表所示。属性说明ControlToValidate用于指定待验证的控件的IDErrorMessage指定未通过验证时显示的错误信息ValidationExpression设置或获取指定为验证条件的正则表达式什么是正则表达式?正则表达式提供了功能强大、灵活而又高效的方法来处理文本。正则表达式的全面模式匹配表示法使您可以快速分析大量文本以找到特定的字符模式;提取、编辑、替换或删除文本子字符串;或将提取的字符串添加到集合以生成报告。对于处理字符串(例如HTML处理、日志文件分析和HTTP标头分析)的许多应用程序而言,正则表达式是不可缺少的工具。正则表达式由两种基本字符类型组成:原义(正常)文本字符、元字符以及限定符,如下图所示。譬如,验证手机号码的正则表达式为((13[0-9])|(15[89]))\d{8}此处要求手机号必须是13开头或者是158、159开头的并且总长度是11位数字。ValidationSummary控件又称为错误总结控件,是用于显示验证所有验证错误摘要的控件,当我们将其他验证控件的Display属性设置None的时候,验证错误信息就通过ValidationSummary控件进行显示。ValidationSummary控件的三个常见属性如下表所示。属性名说明DisplayMode指定显示模式,有BulletList(公告板)、List(列表)、SingleParagraph(一段文字)三种模式ShowMessageBox
是否以客户端提示框的信息显示验证错误信息摘要ShowSummary
是否在网页中采用内联方式显示错误摘要特别提醒:当使用错误总结控件时,其他验证控件的Display属性必须设置为None。CustomValidator控件也成为自定义验证控件,开发人员可以自定义该控件的验证函数,实现自己个性化验证。CustomValidator控件及其他验证控件的最大区别是该控件可以添加客户端验证函数和服务器端验证函数。CustomValidator控件的主要属性和方法如下表所示。属性和方法说明ClientValidationFunction属性指定自定义客户端验证函数ControlToValidate获取或设置待验证的输入控件ErrorMessage验证失败时输出的错误信息OnServerValidate方法为CustomValidator控件引发ServerValidate事件ServerValidate服务器上执行验证时发生CustomValidator控件用于在客户端或者服务器端验证的函数有两个参数,第一个是表示被验证的控件,第二个表示事件数据。第二个参数有两个属性:IsValid用于表示被验证控件是否通过验证,Value属性表示被验证的控件的值。六、ADO及数据库编程ADO是ADO(ActiveXDataObjects)的升级版本,它为Framework提供高效的数据访问机制。ADO的结构并不复杂,它由一组数据库访问类组成,主要包括Connection类(数据库的连接)、Command类(执行数据库的命令)、DataReader类(数据库的读取器)、DataSet类(数据集)和DataAdapter类(数据库的适配器,主要用来操作数据库填充并操作DataSet,它是数据库和DataSet之间的桥梁)等。System.Data命名空间提供对ADO结构中类的访问。通过ADO可以生成一些组件,用于有效管理多个数据源的数据。为了在程序中访问SQLServer2000数据库,需要使用System.Data.SqlClient命名空间。为了在ASPWeb应用程序中访问Oracle数据库,开发人员应该在代码中导入System.Data.OracleClient命名空间。ADO中的内置对象主要包括Connection对象、Command对象、DataReader对象、DataSet对象、DataAdapter对象和DataView对象。Connection类主要处理对数据库的连接,它是操作数据库的基础。该类表示应用程序和数据源之间的唯一会话。在Framework中,使用IDbConnection接口定义Connection类的属性和方法。数据库连接字符串是IDbConnection接口的主要属性之一,由它指定连接的数据库名、连接数据库时所用的用户名和密码等信息。定义ConnectionString的示例代码如下:StringConnectionString="DataSource=localhost;PersistSecurityInfo=True;UserID=sa;Password=sa;InitialCatalog=HrSystem;";关于数据库连接字符串的几点说明:1.DataSource表示数据源的机器名2.InitialCatalog表示SQLServer数据库。3.UserId表示用户ID,用于连接数据库的用户身份名称。4.Password表示用户密码,用于连接数据库的用户登录的密码。Command是ADO中的重要对象,它实现对数据源的操作,如查询、插入、修改和删除等。DataReader对象通过一个打开的数据库连接,提供一种以快速、前向和只读的方式从数据库中读取数据的方法。由于DataReader每次在内存中只处理一行数据,所以使用DataReader可以提高应用程序的性能,减少系统的开销。若要创建对象DataReader,必须调用对象Command的ExecuteReader()方法,而不使用对象DataReader的构造函数DataReader()。DataReader对象具有下面3个独有特性:1.DataReader只能读取数据,没有提供创建、修改和删除数据库记录的功能。2.DataReader是一种向前的读取数据的方式,不能回头读取上一条记录。3.DataReader不能在IIS的内容中保持数据,而是把数据直接传递到显示对象。DataReader对象的主要属性如下表所示。属性说明HasRowsDataReader中是否包含一行或多行记录ItemDataReader中列的值IsClosed数据读取器的当前状态FieldCount当前行中的列数NextResult当读取批处理Transact-SQL语句的结果时,使数据读取器前进到下一个结果IsDBNull表示某列中是否包含不存在的或缺少的值DataReader对象的主要方法如下表所示。方法说明Read读取DataReader中的下一条记录Open打开DataReaderClose关闭DataReaderDataSet对象是ADO的核心,是离线访问技术的载体;DataAdapter对象是DataSet对象和数据存储之间的桥梁。DataSet对象包含主键、外部键以及条件约束等信息,它不维持和数据源的连接,其中的数据可以被存取、操作、更新或删除,并保持及数据源中数据一致。由于DataSet对象使用无连接传输模式访问数据源,因此在用户要求访问数据源时,不需要进行连接操作。同时,数据一旦从数据源读入DataSet对象,数据源便关闭数据连接,解除数据库的锁定,这样就可以避免多个用户对数据源的争夺。DataSet对象内部是采用XML描述的,因此具有平台无关性,即及后台数据库是什么类型的没有关系。DataAdapter对象是DataSet对象和数据库之间关联的桥梁,可以用于检索和更新数据。DataAdapter对象及DataSet对象配合使用来创建数据的内存表示。DataAdapter对象仅仅在需要填充DataSet对象时,才使用数据库连接,完成操作之后就释放所有的资源。DataAdapter及DataSet配合使用以提供一个分离数据的检索机制。DataAdapter负责处理数据的数据源格式及DataSet使用的格式之间的转换。每次从数据库检索数据来填充DataSet,或者通过写DataSet来改变数据库时,DataAdapter都提供两种格式之间的转换。DataAdapter对象通过Fill方法把数据添加到DataSet对象中,在对数据完成添加、删除或修改操作后再调用Update方法更新数据源。ASP提供了一组服务器端数据访问控件,使用这些控件可以很方便地将数据库中的数据显示在网页中,甚至进行修改、删除等操作。下面将介绍Repeater控件、DataList控件、GridView控件、DetailView控件等几个常用的服务器端数据访问控件。在ASP的复杂数据绑定控件中,Repeater控件是最简单的。它可以表格的形式显示数据源的行或列的数据。DataList控件又称数据列表控件,它是一个非常强大的数据绑定控件,显示数据的样式非常灵活,不但可以横排数据,而且还可以竖排数据。GridView控件又称数据网格控件,该控件可以呈现多列的、完全模板化的表格,功能上比Repeater控件和DataList控件更加强大。GridView控件大量使用模板,但是及Repeater和DataList控件的使用方式不同,GridView呈现以列组织的数据表,所以模板不是应用到整个控件中,而是应用在某个特定的列中。在GridView控件内部提供分页机制,还提供在线编辑、更新、和删除功能。GridView控件支持数据分页机制,它可以将数据源的行分成多页显示。在实际应用中,数据源的大小很容易超过页面的范围,为了保留服务器的可伸缩性以及为用户提供更友好的页面,最好采用分页机制。GridView控件提供两种分页机制,即系统自带的分页机制及自定义分页机制。GridView控件设置分页后,默认每页显示10条记录。要使数据网格控件GridView具有自动分页功能,需要将AllowPaging属性设置为true。特别需要注意的是,GridView控件虽然功能强大,提供了在线编辑、更新和删除数据的功能,并且支持数据分页机制,但是该控件本身并不具备增加数据记录的功能,这不能不说是一个遗憾。除了以表格的方式显示数据外,ASP还允许使用DetailsView控件来显示单条数据,通常用于查看记录明细信息、添加、编辑和删除数据。需要特别注意的是,DetailsView控件是唯一具有直接的添加数据记录功能的数据绑定控件。DetailsView控件可以自动生成“插入”按钮、“编辑”按钮、“删除”按钮,但是不能自动生成“刷新”按钮。在数据库编程内容中,我们应该熟练掌握编写数据库访问的Web程序,譬如简单的登录和注册页面,并要掌握数据库的基本知识,熟练运用各种SQL语句。七、网站配置ASP提供了一个操作简易并且功能强大的配置系统,通过配置系统,我们可以轻松定制ASP应用程序。ASP提供了两种配置文件,即machine.config和Web.config,两者的区别就在于设置的作用域不同。这两种配置文件均基于XML格式,开发人员可以使用任何标准的文本编辑器或XML分析器创建和编辑这些配置文件。一个ASP网站可以拥有多个web.config配置文件。这些配置文件可以出现在ASPWeb应用程序服务器上的多个目录中。每个web.config文件都将配置信息应用于它自己的目录和它下面的所有子目录。子目录中的配置文件可以提供除从父目录继承的配置信息以外的配置信息,子目录配置设置可以重写或修改父目录中定义的设置。一台Web服务器中只能有一个machine.config文件,它保存了所有ASPWeb应用程序所使用的默认配置数据;一台Web服务器中可以有多个web.config文件,它包含每一个具体的Web应用程序的配置信息,它可以覆盖machine.config文件中的默认配置,从而为Web应用程序创建特定的运行环境。web.config文件是一个XML文件,它的根结点是configuration,在configuration节点下的常见子节点有configSections、appSettings、<connectionStrings>和<system.web>等。当然,网站配置文件Web.config对于网站而言,不是必须具备的。如果没有特殊的配置需求,一个网站可以连一个web.config文件也没有。在这一点上,Web.config文件及Global.asax文件具有共性,两者都是可选的,对一个网站而言,不是必须具备的文件。两者也是由区别的,一个Web应用程序中最多有1个Global.asax文件有效,但是可以有若干个Web.config文件有效,即一个网站可以有0个或多个Web.config文件有效。八、C#基础知识C#在微软的框架中具有重要地位,是开发ASP应用程序的主流语言,我们主要掌握下面几个内容:(1)C#的变量、常量、控制语句(2)C#类的基础知识及使用方法(3)C#的异常处理当然,对于对于实际应用上,如何在VS2019集成开发环境中编写和调试基于控制台的C#程序,如何在ASPWeb应用程序中灵活运用C#程序是我们必须熟练掌握的基本功和实践开发技能。下面介绍的C#知识,不是完整的,我们需要查阅教材和授课课件中及C#相关的章节,才能获得对C#基础知识较为完备的认识。C#语言中的运算符,包括一元运算符、二元运算符和三元运算符。将其按从高到低的优先级顺序列出,如下表所示。类别运算符算术运算符+-*/%逻辑运算符&|^~&&||!字符串连接运算符+增量和减量运算符++--移位运算符>><<比较运算符==!=<><=>=赋值运算符=+=-=*=/=%=&=|=^=<<=>>=.成员访问运算符(对象和结构).索引运算符(数组和索引器)[]数据类型转换运算符()条件运算符(三元运算符)?:委托连接和删除运算符+-对象创建运算符new类型信息运算符sizeofistypeofas在C#语言中,加号(+)既可以作为算术运算符的加号,也可以作为字符串连接运算符,用于连接两个字符串。在C#语言中,+(加号)既可以作为一元运算符表示正数,也可以作为二元运算符,用来计算两个操作数的和。在C#语言中,“=”是一个赋值运算符,“==”才是用于比较的关系运算符,这个不能弄混。Framework的类库中提供了大量的类,这些类都是层次结构分类管理的。命名空间是类的逻辑分组,它组成一个逻辑树,树根为System。在C#语言中,Console类用于管理控制台应用程序的标准输入流、输出流和错误流。及C语言一样,在C#语言中,数组下标也是从0开始的,即排在数组最前面的第一个元素的下标是0。在C#语言中,所有的数组都是由System命名空间的Array类继承而来,且可以在任何数组上访问该类的方法和属性。在Array类中,可以对一维数组中的元素进行排序的方法是Sort()。在C#语言中,enum关键字用于定义枚举类型,枚举类型就是能够枚举出所有取值的类型。在C#语言中,struct关键字用于定义结构类型。常量具有固定的值,在程序中常量的值不能发生改变。在C#语言中,可以使用关键字const来声明常量。在C#语言中,静态变量使用static关键字声明。在c#中using关键字的作用是引入命名空间。在C#中定义接口时,使用的关键字是interface。在C#语言中,显式类型转化也称为强制类型转换,它需要在进行类型转换时明确指定要转换的目标类型。当整数a赋值给一个object对象时,整数a将会被装箱。在C#语言中,将变量从字符串类型转换为数值类型可以使用的类型转换方法是int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024厂房租赁协议
- 2024企业劳动协议签订注意事项精解版B版
- 2024年度版权买卖合同(影视剧本)3篇
- 江南大学《高层建筑结构设计》2022-2023学年第一学期期末试卷
- 江南大学《传感与检测技术》2022-2023学年第一学期期末试卷
- 佳木斯大学《数学史与数学文化》2021-2022学年第一学期期末试卷
- 佳木斯大学《公共卫生实践技能培训》2021-2022学年第一学期期末试卷
- 暨南大学《口腔粘膜病学》2021-2022学年第一学期期末试卷
- 胃插管术学习培训课件
- 济宁学院《设计素描》2021-2022学年第一学期期末试卷
- 安全生产法律法规标准规范规章制度操作规程适用情况评估报告
- 中国柑橘黄龙病研究30年
- 人教版七年级数学上册同步压轴题第2章整式的加减压轴题考点训练(学生版+解析)
- 厂家方案比较
- 食品检验检测技术的生涯发展
- 机械职业生涯规划书
- 稻盛和夫的实学经营与会计
- 建材家居招商培训课件
- 国家中小学智慧教育平台培训专题讲座
- 生物医药技术与创新培训资料
- 《房地产销售》课件
评论
0/150
提交评论