当前位置: 首页 > news >正文

使用Web窗体中的验证控件

  在一个网络软件中,经常要保证用户输入的信息有效。过去,这一事情得由软件工程 师自已编程实现。现在这一事情有了更轻松的解决方法,通过微软的.net中专门的验证控件, 我们只需设置属性就可以检查必需的项、数据类型、范围、模式和特定的值。而且,这些 控件自动执行检查并以多种方式向用户显示错误信息。
  在下面的这个示例的Web页中,允许用户输入用户名、出生日期、密码等,我们的工 作是如何确保用户向所有的文本框都输入了正确的值。
  这个示例可分成以下若干过程:
  ·通过创建项目、Web窗体页、添加输入控件和标签来创建基本的窗体。
  ·添加验证控件。我们将验证是否输入了必需的项、用户是否输入了有效的用户名、 日期以及匹配的密码。
  ·进行测试。
  1创建基本的窗体
  可以从创建带有输入控件的窗体开始。
  创建项目和窗体
  下面首先创建一个新的Web应用程序项目和Web窗体页,以便向该窗体添加验证控件。
  1.执行“文件”|“新建”|“项目”命令,弹出“新建项目”对话框。
  2.在“新建项目”对话框中,执行以下操作:
  ·在“项目类型”窗格中选择“VisualC#项目”。
  ·在“模板”窗格中选择“ASP.NETWeb应用程序”。
  ·在“位置”文本框中,输入完整的URL(包含http://、服务器名称和项目名称)。
  3.单击“确定”按钮,创建新的Web窗体项目。名为WebForm1.aspx的新Web窗体页 将显示在“设计”视图中Web窗体设计器上。
 4.如果该页尚未处于网格模式,可使用“属性”窗口将文档对象的pageLayout属性设 置为GridLayout。
  添加输入控件
  1.从工具箱的“Web窗体”选项卡,将下面的控件添加到窗体中,它们的ID属性设置 如下表所示:
  控件用途标识
  TextBox输入用户名txtName
  TextBox输入出生日期txtBirthdate
  TextBox输入密码txtPassword
  TextBox重复输入密码进行确认txtPasswordAgain
  Button提交窗体btnRegister
  将Button的Text属性设置为“注册”。
  2.将两个密码框的TextMode属性设置为Password,当用户输入密码时,它们显示星号 (*)。
  3.在文本框前面添加标签以指示其功能。如果Web窗体页处于网格模式,则在每个文 本框的前面添加Label控件并设置它们的Text属性。如果该页处于流模式,则只要在每个框 之前输入静态文本即可。
  4.根据需要调整字体、大小和控件的布局。
  2添加验证控件
  在这一过程,我们将要完成如下一些验证:
  ·必需的字段。确保用户向四个文本框都输入了值。
  ·名称格式。如E-mail的格式应该形如:freee@yspc.com。
  ·日期格式。验证用户输入的出生日期是否有效。
  ·密码匹配。验证用户在两个密码框中提供的密码是否匹配。
  检查是否输入了必需的字段
  我们首先要验证的是,用户在所有四个文本框中都输入了值。
  1.从工具箱的“Web窗体”选项卡中,将一个RequiredFieldValidator控件拖到窗体上, 放在“txtName”文本框旁边。
  2.选择验证控件,并在“属性”窗口中设置属性如下表所示:
  属性设置
  ControlToValidatetxtName  这指示验证程序将检查名称字段的内容
  Text*(星号)  这是将显示在验证程序控件当前所在位置的文本。(通常在包含错误的输入框旁边放 置一个红色的星号。)
  ErrorMessageEmailnameisrequired  该文本将显示在页上的摘要中
  3.如果愿意,我们可以设置验证控件的字体、颜色和格式设置属性。
  4.为其他三个文本框重复步骤1到步骤3,再创建三个RequiredFieldValidation控件,属 性设置如下表所示:
  控件属性设置
  RequiredFieldValidator2ControlToValidate设置为txtBirthdate Text*
  ErrorMessageYoumustenterabirthdate
  RequiredFieldValidator3ControlToValidate设置为txtPassword Text*
  ErrorMessageYoumustenterapassword
  RequiredFieldValidator4ControlToValidate设置为txtPasswordAgain Text*
  ErrorMessageRe-enterthepasswordtoconfirmit
  检查名称格式
  假定以输入电子邮件地址作为注册名,那么注册名就应该是一个典型的电子邮件地址 格式(例如freee@yspc.com)。因此我们可以捕捉用户常犯的输入错误,例如忘记输入电 子邮件地址的“.com”部分。
  1.从工具箱的“Web窗体”选项卡中,将一个RegularExpressionValidator控件拖到 “txtName”框旁边。
  2.选择验证控件,并在“属性”窗口中设置属性如下表所示:
  属性设置
  ControlToValidateTxtName  Text*(星号)
  ErrorMessageNamemustbeintheformatname@domain.xxx
  ValidationExpression从列表中选择“Interne电子邮件地址”。请注意,这会将属性值设置 为正则表达式 检查日期格式 对于用户输入的日期也可进行验证,验证的原则是:用户输入的是不是日期并且比较 该日期是否晚于指定的最小日期(ValueToCompare)。
  1.从工具箱的“Web窗体”选项卡中,将一个CompareValidator控件拖到“txtBirthdate” 框旁边。
  2.选择验证控件,并在“属性”窗口中设置属性如下表所示:
  属性设置
  ControlToValidateTxtBirthdate  Text*(星号)
  ErrorMessageBirthdateisnotavaliddate
  ValueToCompare1900/01/01(或任何其他最小日期)
  OperatorGreaterThan
  TypeDate
  DisplayDynamic
  注意:以格式yyyy/mm/dd输入要进行比较的日期;这样可确保对于所有区域性 设置都将正确地解释它。用户输入日期时,对于月份必须仅使用数字。
  检查密码是否匹配
  程序将会核对用户前后两次所输入的密码是一致的,因此第一个密码框中输入的内容 将比较一个字段(第二个密码框)的值。
  1.从工具箱的“Web窗体”选项卡中,将一个CompareValidator控件拖到“txtPassword Again”框的旁边。
  2.选择验证控件,并在“属性”窗口中设置属性如下表所示:
  属性设置
  ControlToValidateTxtPasswordAgain  Text*(星号)
  ErrorMessageThepasswordsdonotmatch
  ControlToCompareTxtPassword
  OperatorEqual
  DisplayDynamic
  显示验证错误
  为了显示有关验证错误的详细信息,需要执行以下操作:
  1.从工具箱的“Web窗体”选项卡中,将一个ValidationSummary控件拖到窗体上。将
  该控件放置在某个位置上,在该位置,该控件具有空间来显示几行文本。
  2.如果要显示特殊错误,则为DisplayMode属性选择其他显示选项。
  3.设置Font和ForeColor属性对错误信息文本的显示格式。
  添加验证控件的操作已完成。现在可以测试它们的运行情况。
  3测试验证控件
  1.在解决方案资源管理器中,右击Web窗体页并选择“在浏览器中查看”命令。
  2.当显示页时,将不同的值输入框中。若要检查出生日期,请输入一个对Web服务器 的区域设置无效的日期。每次输入错误,都应该在包含错误的框旁边显示一个星号。
  3.单击“注册”按钮。如果有任何错误,错误信息文本就会显示在摘要控件中。(随 着对字段的操作,红色的星号会随时出现和消失。) 如果看不到预想的错误结果,就要检查每个验证控件的设置,然后重试。

相关文章:

  • 点错科技树 机械计算机,冰汽时代科技怎么点 冰汽时代全科技树汇总
  • C#网页计数器
  • 宇宙机器人超级计算机,宇宙机器人无线控制器使用指南白金攻略
  • Iisweb.vbs:IIS 网站管理脚本
  • 数学教育与计算机教育的新讲座的心得体会,数学新课程培训心得体会(精选7篇)...
  • Mathematica
  • 杭电计算机接口实验报告,2009杭电微机原理与接口技术考试及答案
  • 金属模量计算机作图过程,图1-20图解法测G.ppt
  • 用ASP 取得目录下的文件名
  • 围绕EMF探索(3)之初探OCL
  • 北师计算机硕士有宿舍吗,学校不提供宿舍北大北师大研究生吐槽
  • 放弃完美的需求管理
  • 2012服务器远程连接设置,Win Server2012怎么添加用户并设置远程登录
  • win7怎么看服务器芯片,Win7如何查看CPU使用率?Win7CPU使用率的查看方法
  • Image Tessellation
  • 分享一款快速APP功能测试工具
  • canvas绘制圆角头像
  • Docker下部署自己的LNMP工作环境
  • js算法-归并排序(merge_sort)
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Protobuf3语言指南
  • tensorflow学习笔记3——MNIST应用篇
  • Tornado学习笔记(1)
  • 飞驰在Mesos的涡轮引擎上
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 强力优化Rancher k8s中国区的使用体验
  • 双管齐下,VMware的容器新战略
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 无服务器化是企业 IT 架构的未来吗?
  • 【干货分享】dos命令大全
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 阿里云重庆大学大数据训练营落地分享
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​queue --- 一个同步的队列类​
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #define与typedef区别
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (Python) SOAP Web Service (HTTP POST)
  • (zt)最盛行的警世狂言(爆笑)
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (五)关系数据库标准语言SQL
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)setTimeout 和 setInterval 的区别
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .NET MVC第三章、三种传值方式
  • .Net 垃圾回收机制原理(二)
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .net6+aspose.words导出word并转pdf