y2-net2使用技术开发网上书店_第1页
y2-net2使用技术开发网上书店_第2页
y2-net2使用技术开发网上书店_第3页
y2-net2使用技术开发网上书店_第4页
y2-net2使用技术开发网上书店_第5页
免费预览已结束,剩余43页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

表单和数据验证第三章回顾和作业点评以下代码的执行结果是?简述Session的优势有哪些?Response.Write("Hello");Response.End();Response.Write("");Hello预习检查说出两种动态添加客户端脚本的方法使用哪个验证控件可以实现验证某个TextBox的输入数据是否是Internet电子邮件地址?本章任务实现第三波书店用户注册页面

本章目标会使用控件完成页面表单设计掌握常用第三方控件的使用会使用Page对象注册脚本掌握验证控件的使用Web控件3-1Web控件分类:HTML控件

<inputid="Text1"type="text"/>HTML服务器控件

<inputid="Text1"type="text"runat="server"/>Web服务器控件

<asp:TextBoxID="TextBox1"runat="server"></asp:TextBox>用户控件和自定义控件Web控件3-2HTML控件和Web服务器控件的区别HTML控件运行在客户端没有回传,不能用ViewState维持状态Web服务器控件运行在服务器端能回传,能用ViewState维持状态浏览器完成事件处理服务器完成事件处理事件驱动编程模型统一的编程接口,eg.Text属性跨浏览器兼容性Web控件3-3System.Web.UI.ControlSystem.ObjectHtmlControlWebControlDataSourceControlCompositeControlButtonLabelCheckBox……BaseDataListBaseDataBoundControlWeb控件的关系图:第三方控件微软提供的控件不够丰富偶尔效果不理想(比如日历)第三方控件丰富实用大部分可以免费下载有使用说明第三方控件百度注册的页面为什么需要验证码?防止不法分子通过穷举方式破解密码防止竞争对手通过大量注册,破坏网站的稳定验证码验证码控件WebValidates的使用方式1、添加控件到工具箱2、将控件拖放到页面3、编写验证代码演示示例1:WebValidates示例1关键代码验证代码:protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){

snCode.Create();

}}protectedboolCheckCode()

{if(snCode.CheckSN(txtCode.Text.Trim()))

{……}else{snCode.Create();}}生成验证码,注意只在首次加载时使用

比较验证码是否正确,返回布尔型结果

验证失败,重新生成

练习——编写第三波用户注册页面需求说明:编写“第三波书店”表单页面的设计为注册页面添加验证码功能,验证码输入错误给出错误提示完成时间:25分钟实现注册页面如何实现如图所示的注册页面?表单设计对输入信息添加验证验证通过添加用户如何添加窗口提示信息呢?使用客户端脚本客户端脚本使用客户端脚本的好处:分担了服务器的负担提高了对用户操作的响应能力客户端脚本的添加方法:静态方式动态方式静态方式为按钮添加“是否删除?”的提示框演示示例2:静态方式添加脚本.aspx中的关键代码:示例2关键代码……</head><scriptlanguage="javascript">functionAffirm(){returnconfirm("是否删除?");}</script><body><formid="form1"runat="server"><div><asp:ButtonID="btnDel"runat="server"OnClientClick="return

Affirm()"Text="删除"/></div></form></body>指定的编程语言设置点击按钮引发的客户端脚本动态方式脚本需要依赖页面中的数据结果动态添加客户端脚本的方法:不需要页面元素需要页面元素方法说明RegisterClientScriptBlock生成的脚本位于<form>标签之后RegisterStartupScript生成的脚本位于</form>标签之前Response.Write()生成的脚本位于Html代码的顶部即<!DOCTYPE>之前为输入框设置默认的焦点1、判断是否注册过同样脚本2、如果没有,编写设置焦点的脚本字符串3、注册该脚本4、验证是否成功注册为输入框设置焦点演示示例3:动态方式添加脚本.aspx.cs中的关键代码1:IsStartupScriptRegistered():与RegisterStartupScript()配合使用,判断是否注册了启动脚本IsClientScriptBlockRegistered():与RegisterClientScriptBlock()

配合使用,判断是否注册了客户端脚本块示例3关键代码2-1protectedvoidPage_Load(objectsender,EventArgse){if(!Page.ClientScript.IsStartupScriptRegistered(this.GetType(),

"scriptKey")){

stringscriptText="<scriptlanguage='javascript'>

document.getElementById('txtUserName').focus();</script>";

Page.ClientScript.RegisterStartupScript(this.GetType(),"scriptKey",

scriptText);}启动脚本的类型注册脚本的键生成的客户端脚本块示例3关键代码2-2.aspx.cs中的关键代码2:if(!Page.ClientScript.IsStartupScriptRegistered(this.GetType(),"scriptKey")){

Response.Write("<script>alert('脚本没有启动')</script>");else{

Response.Write("<script>alert('脚本已经启动')</script>");}再次判断是否注册了启动脚本为注册页面添加客户端脚本为“完成”按钮添加“确定全部提交吗?”提示为验证码输入错误添加“验证码错误!”提示演示示例4:为注册页面添加客户端提示信息Attributes

使用Attributes.Add()动态为服务器控件添加客户端事件处理程序protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){snCode.Create();}this.btnRegister.Attributes.Add("onclick”,"if(!confirm('确定全部提交

吗?')){returnfalse;}");}Literal控件Literal是简化的Label,生成HTML不包含任何自动生成的HTML元素Response.Write()<script>alert('验证码错误!')</script><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""">Literal控件<tr><td……/>

<script>alert('验证码错误!')</script></td>

</tr>练习——改善验证码的错误提示

需求说明:验证码输入错误给出错误提示框完成时间:25分钟共性问题集中讲解常见调试问题及解决办法代码规范问题共性问题集中讲解指导——实现回车自动提交功能训练要点:客户端脚本需求说明:当用户输入完验证码之后,按回车键弹出“确定全部提交吗?”的提示框,如果用户点击“确定”则提交,否则取消提交操作讲解需求说明指导——实现回车自动提交功能实现思路:1、编写客户端方法实现判断用户的输入,如果输入是回车则弹出“确定全部提交吗?”,用户点击“确定”则触发客户端的提交按钮事件2、在Page_Load()事件中,为验证码输入框添加onkeydown()事件难点指导:JavaScript中,event.keyCode为9代表“Tab”键,event.keyCode

为13代表“Enter”键完成时间:25分钟共性问题集中讲解常见调试问题及解决办法代码规范问题共性问题集中讲解用户注册时,输入了不合标准的信息,怎么办?后台手写验证代码使用javascript脚本进行验证提供了验证控件轻松实现用户输入的验证,且与用户浏览器无关由在客户端或服务器中运行的验证代码执行多种验证控件,验证数据更加简单方便页面回传,用户体验不好

不安全,与浏览器相关

有效性验证BaseValidator基础验证类RequiredFieldValidatorCompareValidatorRegularExpressionValidatorRangeValidatorCustomValidatorpareValidatorLabelWebControl抽象类具体类ValidationSummary验证控件的层次结构非空验证用于验证用户输入是否为空常与其他控件一起使用常用属性属性说明ControlToValidate验证的控件idText出错时的提示ErrorMessage提交给ValidationSummary的错误提示,当Text为空时,也会显示该错误信息RequiredFieldValidator演示输入验证1、在页面中拖入RequiredFieldValidator并设置控件属性2、按钮事件:在页面显示"

信息已提交!"3、在Page_Load及按钮事件中设置断点4、以调试模式运行,体会页面验证顺序5、将IE设置为禁用脚本,继续验证this.lblMessage.Text="信息已提交!";页面并未提交到服务器执行,验证在客户端进行

当IE设置为禁用脚本时,页面发生回传,验证没有发生

RequiredFieldValidator应用演示示例5:验证控件的执行修改按钮事件:Page.IsValid指示页面验证是否成功用于客户端验证失败情况下更加安全if(Page.IsValid){this.lblMessage.Text="信息已提交!";}判断页面是否经过验证Page.IsValid属性CompareValidator用于比较控件的值注册时,密码需要输入两次,并且一致付款时,金额需大于0……常用属性属性说明pare要进行对比的控件Type比较类型设置,不同类型的比较可能会出错Operator比较运算符,默认为等于CompareValidatorRangeValidator用于范围的验证验证生日(小于当前日期)预定卡拉OK(一周内)……常用属性属性说明MaximumValue范围的上界(最大值)MinimumValue范围的下界(最小值)Type验证类型(字符串、整型、双精度、日期、货币五种)RangeValidator电子邮件怎么验证?没有大小可比没有范围之分电子邮件的规则是:必须包含一个并且只有一个符号“@”第一个字符不得是“@”或者“.”不允许出现“@.”或者.@结尾不得是字符“@”或者“.”

可使用正则表达式电子邮件的验证用某种模式去匹配一类字符串的一个公式一类字符串:电话号码、电子邮件地址…...模式:规则公式:表示规则的一段文字匹配:根据表达式去对比验证规则例子:“^”可匹配字符串开始。那么表达式:“^正则”可匹配的下列字符串中的那一种?√×正则表达式名不正则言不顺正则表达式应用正则表达式作为进行验证的控件电子邮件身份证号......常用属性ValidationExpression属性:设置要匹配的正则表达式RegularExpressionValidator自定义验证可以手写js脚本进行客户端验证脚本也可以编写服务器端的验证代码或者联合两种方式验证,更安全常用属性属性说明ClientValidationFunction用于客户端验证的函数ServerValidate服务器端验证的事件方法CustomValidator验证报告控件该控件并不对窗体的输入进行验证它可以将验证错误汇总在一处统一显示显示的内容是其他控件的ErrorMessage常

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论