在软件开发中,验证输入信息是否正确,这是不可缺少的一项工作。就拿我们做过的机房收费系统来说,在登录的时候,我们须要对username和用户password进行验证。推断是否为空,推断输入字符是否合理等等。这些工作,我们之前都须要编写一段又一段代码,依次进行验证。

在ASP.NET中。学习到了验证控件,发现这些事情原来能够非常easy就被解决的。

这篇博客就将ASP.NET中5个验证控件总结一下。也是为了以后能够更加方便熟悉的使用它们。

(一)RequiredFieldValidator控件
其功能是要求用户必须为ASP.NET网页上的某个指定控件提供信息,比如在登录界面下,要求username不能为空,此时就能够将该控件绑定到username文本框,当username为空时,该控件提示“username为空”的信息。 (二)CompareValidator控件
其功能是验证某个输入控件里输入的信息是否满足实现设定的条件。比如在输入人的年龄时,输入的值必须大于0,此时就能够将该控件绑定到用于输入年龄文本框,并设置适当的条件来控制用户误输入小于0的数值。
(三)RangeValidator控件
其功能是验证用户对某个文本框的输入是否在某个范围内,如输入的数值是否在某两个数值之间,输入的日期是否在某两个日期之间等。
(四)RegularExpressionValidator控件
其功能是验证用户输入的数据是否符合规则表达式提前定义的格式。 如输入的数据是否符合身份证、电子邮件、电话号码等格式。规则表达式一般都是利用正則表達式来描写叙述。 (五)CustomValidator控件
其功能是能够调用程序开发者在server端编写的自己定义验证函数。
以下就以一个注冊的实例,来对这些验证控件应用。
前台是一个简单的用户注冊页面,例如以下图:

当中包括5个RequiredFieldVaildator控件验证每一个文本框内容是否为空。一个RangeValidator控件验证输入年龄文本框内容是否在1-150之间,一个CompareValidator控件验证两次输入的password是否一致。一个RegularExpressionValidator控件验证输入的电子邮件格式是否正确。 设置好各个控件的ErrorMessage、ControlToValidate等属性后。我们能够从源码中看到一个完整的HTML代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div> </div>
<p style="margin-left: 200px">
用户注冊</p>
<p>
<asp:Label ID="Label2" runat="server" Text="username:"></asp:Label> <asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ControlToValidate="TextBox6" ErrorMessage="username必填"></asp:RequiredFieldValidator>
</p>
<p>
password: <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox2" ErrorMessage="password必填"></asp:RequiredFieldValidator>
</p>
<p>
反复password:<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="TextBox3" ErrorMessage="反复password必填"></asp:RequiredFieldValidator> <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="TextBox2" ControlToValidate="TextBox3" ErrorMessage="两次password输入不一致"></asp:CompareValidator>
</p>
<p>
年龄: <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="TextBox4" ErrorMessage="年龄必填"></asp:RequiredFieldValidator> <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="TextBox4" ErrorMessage="年龄必须大于0小于120!" MaximumValue="120" MinimumValue="1" Type="Integer"></asp:RangeValidator>
</p>
<p>
<asp:Label ID="Label1" runat="server" Text="电子邮件:"></asp:Label>
<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="TextBox5" ErrorMessage="电子邮件必填"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox5" ErrorMessage="邮件格式输入错误" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
</p>
<p> <asp:Button ID="Button1" runat="server" Text="注冊" />
</p>
</form>
</body>
</html>
	这样点击注冊button后,假设各个文本框不符合要求,便会有对应的提示信息。但第一次执行就遇到错误了,

	非经常见的一个错误。在网上搜了搜非常快就得到了答案,那是由于WebForm使用UnobtrusiveValidationMode来验证。所以能够设定不要使用UnobtrusiveValidationMode。例如以下,在Page_Load中设定,
protected void Page_Load(object sender, EventArgs e)
{
UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
}
	这样前台就显示了,假设各个文本框什么都不输入。各个验证控件都会提示“**为必填”,例如以下图:
	

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVfemhpdGluZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
	除了推断文本框内容是否为空,其它验证控件相同会推断输入的相应的内容是否符合要求,不符合要求的,也会提示相应的信息,例如以下图:

全部文本框的内容都按正确的形式填写的话。就便不会有不论什么出错信息提示了,例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVfemhpdGluZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
通过这样一个实例。对这些验证控件的使用也就掌握了。曾经我们对文本框的输入内容须要写大量的代码一步一步进行验证。而通过ASP.NET视频中验证控件的学习,将验证控件与文本框控件绑定,这样方便了我们非常多。以后在编敲代码的时候就能够考虑用上了,也算是站在巨人的肩膀上一点点提升。

【ASP.NET】验证控件的更多相关文章

  1. ASP.Net 验证控件 RequiredFieldValidator

    使用 ASP.NET 验证控件可在网页上检查用户输入.有用于各种不同类型验证的控件,例如范围检查或模式匹配验证控件.每个验证控件都引用网页上其他位置的输入控件(服务器控件).当处理用户输入时(例如,当 ...

  2. ASP.NET验证控件详解

    现在ASP.NET,你不但可以轻松的实现对用户输入的验证,而且,还可以选择验证在服务器端进行还是在客户端进行,再也不必考虑那么多了,程序员们可以将重要精力放在主程序的设计上了. ASP.NET公有六种 ...

  3. 为人们服务的asp.net 验证控件

    ASP.NET是微软推出的WEB开发工具,他有很强大的功能,今天看视频讲到验证控件这一部分,真的感受到了微软全心全意为人民服务了.越来越佩服微软了,人家都设计出来了,咱们一定要会用才可以啊,不然太…. ...

  4. ASP.NET验证控件二

    RequiredFieldValidator 验证控件 页面布局: <div> <h1>RequiredFieldValidator 验证控件</h1>   用户名 ...

  5. ASP.NET验证控件一

    为了更好地创建交互式Web应用程序.加强应用程序安全性,程序开发人员应该对用户输入的内容进行验证. ASP.NET提供了一系列输入验证控件,使用这些控件用户可以很方便地实现输入验证. ASP.NET还 ...

  6. ASP.NET验证控件应用实例与详解。

    ASP.NET公有六种验证控件,分别如下:  控件名      功能描叙 1RequiredFieldValidator(必须字段验证)  用于检查是否有输入值 2CompareValidator(比 ...

  7. ASP.Net 验证控件 RegularExpressionValidator

    定义和用法 RegularExpressionValidator 控件用于验证输入值是否匹配指定的模式. 注释:除非浏览器不支持客户端验证或 EnableClientScript 属性被设置为 fal ...

  8. ASP.Net 验证控件 RangeValidator

    RangeValidator 定义和用法 RangeValidator 控件用于检测用户输入的值是否介于两个值之间.可以对不同类型的值进行比较,比如数字.日期以及字符. 注释:如果输入控件为空,验证不 ...

  9. ASP.NET_验证控件(class0620)

    为什么使用验证控件 当需要让用户输入数据时,用户有可能输入不符合我们程序逻辑要求的信息,所以我们要对输入进行验证. 客户端验证(用户体验,减少服务器端压力) 服务器端验证(防止恶意攻击,客户端js很容 ...

  10. ASP.NET验证控件

    在此过程中房间的收费制度时,.为了验证文本框是否为空.用户存在.合法等等.我们都要单独写代码.学习了ASP.NET的验证控件,省了非常多事. ASP.NET能够轻松实现对用户输入的验证. 让我们好好回 ...

随机推荐

  1. boost::asio async_write也不能保证一次发完所有数据 二

    只有看boost源码才能弄明白发生了什么.首先我是将vector里面写入了数据,然后用boost::asio::buffer将vector构造成了mutable_buffer_1对象. 参考该文档的重 ...

  2. FZOJ2110: Star

    Problem Description Overpower often go to the playground with classmates. They play and chat on the ...

  3. Windows下用Mingw编译Boost.Regex库

    下载Boost库,解压. 定位到regex库文件夹下. GCC所对应的MAKEFILE为gcc.mak 进入命令提示符下,输入make -f gcc.mak 这是如果直接按回车执行的话,会出现错误: ...

  4. cPickle.so:: PyUnicodeUCS2_DecodeUTF8

    cPickle.so:: PyUnicodeUCS2_DecodeUTF8错误 Python编译的参数,和Python module(mod_wsgi, pymodwsgi)编译参数不一,导致一些un ...

  5. 通过崩溃地址找错误行数之Delphi版

    通过崩溃地址找错误行数之Delphi版2009-5-11 17:42:35 来源: 转载 作者:网络 访问:360 次 被顶:2 次 字号:[大 中 小]核心提示:什么是 MAP 文件?简单地讲, M ...

  6. Redis:安装、配置、操作和简单代码实例(C语言Client端)

    Redis:安装.配置.操作和简单代码实例(C语言Client端) - hj19870806的专栏 - 博客频道 - CSDN.NET Redis:安装.配置.操作和简单代码实例(C语言Client端 ...

  7. TCP/IP笔记 二.网络层(1)

    1. IP 1.1 配套协议 IP 是 TCP/IP 体系中两个最主要的协议之一 . 与 IP 协议配套使用的还有四个协议:   (1)ARP (Address Resolution Protocol ...

  8. OSGi:生命周期层

    前言 生命周期层在OSGi框架中属于模块层上面的一层,它的运作是建立在模块层的功能之上的.生命周期层一个主要的功能就是让你能够从外部管理应用或者建立能够自我管理的应用(或者两者的结合),并且给了应用本 ...

  9. Swift代码实现加载WEBVIEW

    let webview = UIWebView(frame:self.view.bounds) webview.bounds=self.view.bounds //远程网页 webview.loadR ...

  10. VC 绘图技巧--自定义形状图形

    自定义形状图形,定义几个点围城的图形,然后进行描边和填充: if (m_memDC.m_hDC!=NULL) { CPoint point[4]; point[0].x=nLeft+(int)(0.1 ...