《WEB程序设计06.ppt》由会员分享,可在线阅读,更多相关《WEB程序设计06.ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章第六章HTML控件和验证控件回顾q在ASP.NET中,控件分成HTML服务控件和Web服务控件两种q所有的ASP.NETWeb服务器控件都派生自System.Web.UI.WebControls命名空间q使用Web服务器控件需要注意AutoPostBack的使用qWeb服务器控件可以分为:q文本输入控件q控制权转移控件q选择控件q容器控件q其它专用控件22007iSoftStoneHoldingsLtd.AllRightsReserved.目标使用各种HTML控件理解HTML控件和Web控件的区别使用各种验证控件32007iSoftStoneHoldingsLtd.AllRightsRe
2、served.ASP.NETHTML控件简介HTML服务器控件是由ASP.NET更新的标准HTML标签,通过添加runat=“server”属性将其用作服务器控件HTML标签runat=serverHTML服务器控件qHTML服务器控件属于System.Web.UI.HTMLControls命名空间,派生自HTMLControl基类42007iSoftStoneHoldingsLtd.AllRightsReserved.HTML控件与Web控件的区别3-1HTML控件控件1.比较灵活2.功能较少3.在客户端运行窗体且不需用户结合多种功能时使用4.4.可用来将ASP应用程序导入ASP.NETWe
3、b控件控件1.具备多种控件编程功能2.包含大量控件3.在服务器端运行窗体时使用4.具备更加完善的功能来处理存储在数据库中的数据5.可在可视化设计环境中使用52007iSoftStoneHoldingsLtd.AllRightsReserved.往返过程:浏览器向用户显示一个窗体,用户与该窗体进行交互,这导致该窗体回发到服务器。但是,因为与服务器组件进行交互的所有处理必须在服务器上发生,这意味着对于要求处理的每一操作而言,必须将该窗体发送到服务器、进行处理、然后返回到浏览器。HTML控件与Web控件的区别3-262007iSoftStoneHoldingsLtd.AllRightsReserve
4、d.无状态性:客户端向服务器发送一个请求(譬如你在IE栏输入网址,回车),服务器接到请求,响应请求(处理事件),服务器完成处理后将生成的web页发送回浏览器,然后就清除该页的信息,释放服务器资源。服务再等待下一次请求,即使下一次是请求同一页,服务器重新开始创建和处理该页。服务器就是这样不停的重复这一过程。服务器不记录页面的状态或信息的特性我们就称之为“无状态性”。HTML控件与Web控件的区别3-372007iSoftStoneHoldingsLtd.AllRightsReserved.HTML服务器控件的类型HTML控件控件HtmlAnchorHtmlButtonHtmlFormHtmlIm
5、ageHtmlInputButtonHtmlInputFileHtmlInputImageHtmlInputRadioButtonHtmlInputTextHtmlTable82007iSoftStoneHoldingsLtd.AllRightsReserved.HtmlForm控件2-1此控件是一种服务器控件,用于表示可作为容器容纳Web页面中各种元素的窗体所有HTML控件和Web控件均置于HTMLForm控件内HtmlForm控件由以下标签表示:formid=“id名称method=POST/GETaction=“目的页面的URLrunat=server92007iSoftStoneHol
6、dingsLtd.AllRightsReserved.用户界面HtmlForm控件2-2privatevoidbtnSubmit_ServerClick(objectsender,System.EventArgse)lblSubmit.InnerHtml=此按钮为“提交”按钮!;privatevoidbtnClear_ServerClick(objectsender,System.EventArgse)lblClear.InnerHtml=此按钮为“清除”按钮!;窗体的输出结果102007iSoftStoneHoldingsLtd.AllRightsReserved.HtmlImage控件2-
7、1此控件是用于显示图像的一种服务器端控件它可以动态设置并获取来源、宽度、高度、边框宽度、备用文本和对齐方式等各种图像属性HtmlImage控件由以下标签表示:imgid=“id名称”alt=“替代文本runat=serveralign=left/right/top/middle/bottomborder=“边框宽度height=“图像高度src=“图像URLwidth=“图像宽度112007iSoftStoneHoldingsLtd.AllRightsReserved.HtmlImage控件2-2privatevoidbtnChange_ServerClick(objectsender,Sys
8、tem.EventArgse)if(int.Parse(ViewStateCount.ToString()%2=1)imgShow.Src=imagesflower.gif;elseimgShow.Src=imagesfinger.gif;ViewStateCount=int.Parse(ViewStateCount.ToString()+1;122007iSoftStoneHoldingsLtd.AllRightsReserved.HtmlInputFile控件2-1此控件用于将文件从ASP.NET页面上载到服务器中此控件将显示一个文本框和一个浏览按钮,以便上载文件HtmlInputFile
9、控件由以下标签表示:132007iSoftStoneHoldingsLtd.AllRightsReserved.HtmlInputFile控件2-2privatevoidbtnUpload_ServerClick(objectsender,System.EventArgse)stringstrFileName=this.File1.PostedFile.FileName;intnLength=strFileName.Length-strFileName.LastIndexOf()-1;strFileName=strFileName.Substring(strFileName.LastIndex
10、Of()+1,nLength);stringstrPath=Server.MapPath()+Upload;File1.PostedFile.SaveAs(strPath+strFileName);142007iSoftStoneHoldingsLtd.AllRightsReserved.ASP.NET中的验证控件为使用户更正输入错误或无效的数据,始终需要对用户输入的数据进行检查并显示错误消息验证将由在客户端或服务器中运行的验证代码执行ASP.NET提供了许多验证控件,用以检查输入并使验证数据更加简单方便与其他服务器控件一样,验证控件也被添加在ASP.NET页面中152007iSoftSton
11、eHoldingsLtd.AllRightsReserved.ASP.NET中的验证控件验证控件控件RequiredFieldValidatorCompareValidatorRangeValidatorRegularExpressionValidatorCustomValidatorValidationSummary162007iSoftStoneHoldingsLtd.AllRightsReserved.RequiredFieldValidator控件3-1此控件用于检查任何窗体控件中是否包含值如果控件中不含任何值,则会生成错误消息提交窗体提交窗体这些字段中是否有任何字段为空?方法方法Va
12、lidate属性属性ControlToValidateErrorMessageText172007iSoftStoneHoldingsLtd.AllRightsReserved.RequiredFieldValidator控件3-2将所有控件放入窗体,同时应验证姓名和年龄输入是否为空从工具箱中选择RequiredFieldValidator控件为每个文本框置入一个RequiredFieldValidator控件,并按下一页所示设置各个控件的属性182007iSoftStoneHoldingsLtd.AllRightsReserved.RequiredFieldValidator控件3-3属性值
13、IdRFV1ControlToValidatetxtNameText请输入姓名!ForeColorRed属性值IdRFV2ControlToValidatetxtAgeText*ErrorMessage请输入年龄!ForeColorRed姓名字段中含有一个值,因此验证后未显示错误年龄字段为空,因此验证后显示错误消息192007iSoftStoneHoldingsLtd.AllRightsReserved.CompareValidator控件3-1将一个窗体字段中输入的值与一个固定值或另一个控件中输入的值进行比较,并检查值的类型检查ID是否为数字检查日期是否有效检查截止日期是否迟于起始日期属性属
14、性ControlToCompareControlToValidateDisplayEnabledErrorMessageIsValidTextValueToCompare方法方法Validate选择三个CompareValidator控件202007iSoftStoneHoldingsLtd.AllRightsReserved.CompareValidator控件3-2属性值IDComVal1ControlToValidatetxtIdDisplayStaticTextID无效ForeColorRedOperatorDataTypeCheckTypeInteger检查ID:检查起始日期:检查截
15、止日期:属性值IDComVal2ControlToValidatetxtSdateDisplayStaticText日期有效ForeColorRedOperatorDataTypeCheckTypeDate属性值IDComVal3ControlToComparetxtSdateControlToValidatetxtEdateDisplayStaticText截止日期应迟于起始日期ForeColorRedOperatorGreaterThanTypeInteger212007iSoftStoneHoldingsLtd.AllRightsReserved.CompareValidator控件3-
16、3ID应为整数值应为整数值日期值无效日期值无效ID正确正确日期正确日期正确截止日期应迟于起始日期222007iSoftStoneHoldingsLtd.AllRightsReserved.RangeValidator控件2-1检查窗体字段的值是否介于最小值与最大值之间最小值和最大值可以为日期、号码、币值或字符串选择两个RangeValidator控件ID应介于1与100之间旅行日期应设于随后3个月内属性属性ControlToValidateDisplayEnabledErrorMessageIsValidMaximumValueMinimumValueText方法方法Validate23200
17、7iSoftStoneHoldingsLtd.AllRightsReserved.RangeValidator控件2-2privatevoidPage_Load(objectsender,System.EventArgse)RangeVal2.MinimumValue=Convert.ToString(System.DateTime.Now.ToShortDateString();RangeVal2.MaximumValue=Convert.ToString(System.DateTime.Now.AddMonths(3).ToShortDateString();privatevoidbtnS
18、ubmit_Click(objectsender,System.EventArgse)if(IsValid)lblMessage.Text=“您好”+txtId.Text+“你的旅行日期为:+txtJdate.Text;将最小值设置为当前日期将最大值设置为自当前日期起的3个月如果输入无任何错误ID未介于1与100之间输入的日期已过期,而未在随后三个月内242007iSoftStoneHoldingsLtd.AllRightsReserved.正则表达式2-1正则表达式用于进行类型匹配正则表达式可使用文字文本逐字匹配它还可以使用元字符与复杂的字符序列相匹配以下为几种常用的符号(更多的参见书本)符
19、号含义字符串开始处$字符串结束a-z是否是a-z中的一个w允许输入任何值d3“d”指定输入的值是一个数字,表示已指定数据类型的出现次数+表明一个或多个元素将被添加到正在检查的表达式252007iSoftStoneHoldingsLtd.AllRightsReserved.正则表达式2-2例如:国内电话号码的表达式(0d2,3)|0d2,3-)?d7,8(-d1,4)?解释:(0d2,3)|0d2,3-)?表示前面的出现0或1|表示或者,即(0d2,3)或者0d2,3-也就是区号可以用(010),(0871),010-,0871-表示;d7,8表示7位或者8位数字电话号码(-d1,4)??表示出
20、现0或1次,即1到4位分机号或者没有分机号以下的都算满足:12345678,010-12345678,010)12345678,010-1234567-1,0877-1234567-1234等。262007iSoftStoneHoldingsLtd.AllRightsReserved.RegularExpressionValidator控件3-1用于将在窗体字段中输入的值与正则表达式进行匹配此控件通常与文本框控件一起使用,以检查电子邮件ID、电话号码、信用卡号码、用户名和密码等是否有效属性属性ControlToValidateDisplayEnabledErrorMessageIsValidT
21、extValidationExpression方法方法Validate272007iSoftStoneHoldingsLtd.AllRightsReserved.RegularExpressionValidator控件3-2选择三个RegularExpressionValidator控件姓名应介于2至50个字符之间应以有效的电子邮件格式填写电子邮件地址,如电话号码应为10位数282007iSoftStoneHoldingsLtd.AllRightsReserved.RegularExpressionValidator控件3-3用来验证姓名的控件的验证表达式的值:w2-50用来验证电子邮件的控件
22、的验证表达式的值:w+(-+.w+)*w+(-.w+)*.w+(-.w+)*用来验证电话号码的控件的验证表达式的值:0-910在字段中输入的值与正则表达式不匹配292007iSoftStoneHoldingsLtd.AllRightsReserved.CustomValidator控件3-1按照用户指定的标准进行验证可在特定情况下无法使用任何标准验证控件时使用通常用来验证存储在特定数据库中的数据选择并放置一个CustomValidator控件,以检查用户输入的密码属性属性ControlToValidateDisplayEnabledErrorMessageIsValidText方法方法OnSe
23、rverValidateValidate事件事件ServerValidate302007iSoftStoneHoldingsLtd.AllRightsReserved.CustomValidator控件3-2CustomValidator控件的属性属性值IDCusVal1ControlToValidatetxtPassDisplayDynamicText请输入有效密码ForeColorRedprivatevoidCustomValidator1_ServerValidate(objectsource,System.Web.UI.WebControls.ServerValidateEventAr
24、gsargs)strVal=args.Value.ToUpper();if(strVal.Equals(ADMINISTRATOR)args.IsValid=true;elseargs.IsValid=false;privatevoidbtnLogin_Click(objectsender,System.EventArgse)if(CusVal1.IsValid)lblMessage.Text=“恭喜!;触发CustomValidator控件的ServerValidate事件使用CustomValidator代码验证密码字段如果用户输入的密码正确312007iSoftStoneHoldings
25、Ltd.AllRightsReserved.CustomValidator控件3-3如果输入的密码错误,则显示错误消息输入的密码正确322007iSoftStoneHoldingsLtd.AllRightsReserved.属性属性DisplayModeEnabledShowMessageBoxValidationSummary控件2-1显示窗体中生成的所有错误的摘要摘要可以按多种模式显示:列表、项目列表或单独一段将所有其他验证控件放入窗体在窗体中放入一个ValidationSummary控件332007iSoftStoneHoldingsLtd.AllRightsReserved.Valid
26、ationSummary控件2-2属性值IDValSummary1DisplayModeBulletListHeaderText以下窗体字段为空!ShowMessageBoxTrueValidationSummary控件的属性显示一个消息框,用以显示错误消息显示所有错误的摘要窗体中的错误342007iSoftStoneHoldingsLtd.AllRightsReserved.Page.IsValid属性该属性为Web窗体页中的一个属性,用于检查页面中的所有验证控件是否均已成功进行验证如果页面验证成功,则将具有值True,否则将具有值FalseprivatevoidValidateBtn_Cl
27、ick(ObjectSender,System.EventArgse)if(Page.IsValid=true)lblMessage.Text=“页面有效;elselblMessage.Text=“页面中存在一些错误;检查页面验证是否已经成功352007iSoftStoneHoldingsLtd.AllRightsReserved.总结HTML服务控件和Web服务控件的区别RequiredFieldvalidator检查必填字段中是否含有值CompareValidator控件将在一个窗体字段中输入的值与一个固定的值或任何其他窗体字段中的值进行比较RangeValidator控件用于检查在字段中输入的值是否介于最大值与最小值之间RegularExpressionValidator控件用于检查字段值是否与给定的正则表达式相符CustomValidator控件用来为窗体创建自定义验证标准ValidationSummary控件概括窗体中生成的所有错误Page.IsValid属性检查页面中的所有验证控件是否均已成功进行验证362007iSoftStoneHoldingsLtd.AllRightsReserved.
限制150内