第六章数据插入与更新回顾2-1数据展示有哪两种方式?手写绑定绑定数据源控件Eval和Bind的区别?Eval方法是静态(只读)方法,格式化显示,计算列等。Bind方法支持读/写功能,可修改回传服务器。下面是改变图书分类的部分代码,有什么问题?回顾2-2stringsb=String.Empty;for(inti=0;ithis.gvBooks.Rows.Count;i++){CheckBoxcb=(gvBooks.Rows(i).FindControl(chbSelect“))asCheckBox;if(cb.Checked==true){sb+=(gvBooks.Rows[i].FindControl(lblId)asLabel).Text+,;}}stringcatagory=this.ddlCatagory.SelectedItem;ChangeCatagory(sb,catagory);Rows[i]SelectedValue或SelectedItem.Value预习检查可使用哪个控件完成文件上传?有哪几种数据验证控件?本章任务完善用户注册完善图书管理模块中的图书信息修改验证控件可上传图片可选择日期本章目标能熟练使用验证控件熟练使用ObjectDataSource更新数据会手工编写更新事件的方法有效性验证用户注册时,输入了不合标准的信息,怎么办?后台手写验证代码使用javascript脚本进行验证ASP.NET提供了验证控件轻松实现用户输入的验证,且与用户浏览器无关由在客户端或服务器中运行的验证代码执行多种验证控件,验证数据更加简单方便页面回传,用户体验不好不安全,与浏览器相关验证控件的层次结构BaseValidator基础验证类RequiredFieldValidatorCompareValidatorRegularExpressionValidatorRangeValidatorCustomValidatorBaseCompareValidatorLabelWebControl抽象类具体类ValidationSummaryRequiredFieldValidator非空验证用于验证用户输入是否为空常与其他控件一起使用常用属性属性名称说明ControlToValidate验证的控件idText出错时的提示ErrorMessage提交给ValidationSummary的错误提示,当Text为空时,也会显示该错误信息RequiredFieldValidator演示演示输入验证如上页拖入并设置控件属性按钮事件:在页面显示信息已提交!“在Page_Load及按钮事件中设置断点以调试模式运行,体会页面验证顺序将IE设置为禁用脚本,继续验证this.lblMessage.Text=信息已提交!;页面并未提交到服务器执行,验证在客户端进行演示示例:验证控件的执行当IE设置为禁用脚本时,页面发生回传,验证没有发生Page.IsValid修改按钮事件:Page.IsValid指示页面验证是否成功用于客户端验证失败情况下更加安全if(Page.IsValid){this.lblMessage.Text=信息已提交!;}判断页面是否经过验证CompareValidatorCompareValidator用于比较控件的值注册时,密码需要输入两次,并且一致付款时,金额需大于0……常用属性属性名称说明ControlToCompare要进行对比的控件Type比较类型设置,不同类型的比较可能会出错Operator比较运算符,默认为等于RangeValidatorRangeValidator用于范围的验证验证生日(小于当前日期)预定卡拉OK(一周内)……常用属性属性名称说明MaximumValue范围的上界(最大值)MinimumValue范围的下界(最小值)Type验证类型(字符串、整型、双精度、日期、货币五种)电子邮件的验证电子邮件怎么验证?没有大小可比没有范围之分电子邮件的规则是:必须包含一个并且只有一个符号“@”第一个字符不得是“@”或者“.”不允许出现“@.”或者.@结尾不得是字符“@”或者“.”zhangsan@163.com可使用正则表达式正则表达式用某种模式去匹配一类字符串的一个公式一类字符串:电话号码、电子邮件地址…...模式:规则公式:表示规则的一段文字匹配:根据表达式去对比验证规则例子:“^”可匹配字符串开始。那么表达式:“^正则”可匹配的下列字符串中的那一种?√×正则表达式名不正则言不顺RegularExpressionValidator应用正则表达式作为进行验证的控件。电子邮件身份证号......常用属性ValidationExpression属性:设置要匹配的正则表达式CustomValidator自定义验证可以手写js脚本进行客户端验证脚本也可以编写服务器端的验证事件或者联合两种方式验证,更安全常用属性属性名称说明ClientValidationFunction用于客户端验证的函数OnServerValidate服务器端验证的事件方法ValidationSummary验证报告控件该控件并不对窗体的输入进行验证它可以将验证错误汇总在一处统一显示显示的内容是其他控件的ErrorMessage常用属性ShowMessageBox,指示是否显示弹出的提示消息ShowSummary,指示是否显示该报告内容,用于显示提示消息的时候为避免多处提示验证错误信息,可将验证控件的Text属性设置为“*”号现场编程完善用户注册功能使用验证控件的验证方式所有输入都不可为空两次输入密码一致Email需要格式正确使用弹出窗口的提示方式演示示例:采用验证控件的用户注册Calendar日历控件在Web页面上放置的一个可选日期的日历控件方便了用户对于日期的输入日历控件的使用将控件拖入页面设置控件相关属性设置事件,并添加代码运行检查效果演示示例:日历控件的使用Calendar日历控件的常用属性和事件属性方法名称说明SelectedDate属性设置或获取选择的日期VisibleDate属性当前可见的日期(默认显示的月份)TitleFormat属性标题格式(“某月”或“某年某月”)SelectionChanged事件选择某日期后的事件Calendar(JS版)能否在用户选择日期时,不刷新页面?JS版的日历控件美观页面无刷新网上可免费下载一般都提供使用教程My97DatePicker日历控件My97DatePicker比较不错的js版日历控件同时支持IE和Firefox界面美观功能强大,设置方便目录结构存放语言的文件夹存放皮肤相关文件日期库主文件主配置文件,修改默认风格等导入文件,在调用的页面需要引入该文件使用方式使用方式:将整个文件夹放置于网站跟目录页面中添加WdatePicker.js的引用在设置日期的控件上添加样式和事件scriptlanguage=javascripttype=text/javascriptsrc=My97DatePicker/WdatePicker.js/scriptclass=WdateonFocus=newWdatePicker(this,'%Y-%M-%D%h:%m',true,'default')指定js文件路径演示示例:My97DatePicker的使用FileUpload文件上传控件可将图片等文件上传到服务器演示使用方法如图设置控件添加事件方法运行演示示例:文件上传控件的使用部分代码fulFile.SaveAs(C:\\+fulFile.FileName);lblFile.Text=上传的文件名为:+fulFile.FileName+br+文件大小:+fulFile.PostedFile.ContentLength+kbbr+文件类型:+fulFile.PostedFile.ContentType;保存文件到指定位置获取上传的文件名获取上传的文件类型获取上传的文件大小注意:读写硬盘需要设置足够的访问权限,需要将文件夹的权限分配给ASP.NET的运行帐户上传内容控制在web.config中设置上传大小控制上传的文件格式(JS脚本方式)httpRuntimemaxRequestLength=4096/varmime=FileUpload.value;mime=mime.toLowerCase().substr(mime.lastIndexOf(.));if(mime!=“.jpg){FileUpload.value=;alert(仅支持JPG格式);}maxRequestLength为可上传的大小(kb)其实就是判断上传文件的后缀名图书基本信息的修改修改图书基本信息在图书详细页增加添加和修改将项转换为模板项添加相关验证日期输入使用JS版的日历控件封面图片可上传更新演示示例:修改图书信息编程控制参数更新事件触发前,添加更新的参数protectedvoiddvBookList_ItemUpdating(.......){DropDownListddlPublisher=this.dvBookList.FindControl(ddlPublisher)asDropDownList;this.odsBooks.UpdateParameters.Add(PublisherId,ddlPublisher.SelectedValue);}添加更新的参数PublisherId查找出版社的下拉单该事件在更新事件触发前发生上传封面图片更新后上传封面图片protectedvoiddvBookList_ItemUpdated(......){FileUploadfulBook=this.dvBookList.FindControl(fulBook)asFileUpload;ImageimgBook=this.dvBookList.FindControl(imgBook)asImage;stringFileName=fulBook.FileName;if(FileName.Trim().Length!=0){stringstrpath=Server.MapPath(imgBook.ImageUrl);fulBook.PostedFile.SaveAs(strpath);}}在图书事件后发生将提交的文件保存MultiViewMultiView控件与View控件一起工作能够打开或者关闭页面的不同部分。View控件必须放置于MultiView控件的内部其实就是激活或禁用MultiView中的一系列View控件需要显示的控件放在View控件里演示示例:MultiView控件的使用ImageMap可以将图片转变为导航菜单对图片区域进行划分为区域赋予特定的属性设置为PostBack时,可设置回传的值类似于HTML中的热点(map标签)演示示例:ImageMap控件的使用HyperLinkHTML提供链接的标签是什么?a....../a缺点:改变链接困难提供超链接的服务器控件可通过设置NavigateUrl方便的改变链接路径可使用ImageUrl设置为图片形式的链接演示示例:HyperLink控件的使用小结编写上传文件验证的脚本。只允许上传.JPG格式的文件。使用客户端脚本验证。如果上传文件类型不符合要求,视为未输入。给予提示。答案:上传验证脚本总结说明六种验证控件各自的功能。如果要使ValidationSummary仅显示弹出提示,需要设置哪两个属性?使用CompareValidator验证控件时,默认是字符串比较,如果比较整型的数据,需将哪个属性改为整型?使用My97DatePicker时,需在录入日期的TextBox控件上编写哪些内容?