【ASP.NET】Validation 服务器控件
Validation 服务器控件
Validation 服务器控件用于验证输入控件的数据。如果数据未通过验证,则向用户显示错误消息。
创建 Validation 服务器控件的语法是:
<asp:control_name id="some_id" runat="server" />
| Validation 服务器控件 | 描述 |
|---|---|
| CompareValidator | 把一个输入控件的值与另一个输入控件或一个固定的值进行对比。 |
| CustomValidator | 允许您编写一个方法,来处理输入值的验证。 |
| RangeValidator | 在两个值的范围内检查输入的值。 |
| RegularExpressionValidator | 确保输入控件的值匹配指定的模式。 |
| RequiredFieldValidator | 是输入控件成为必需(必填)的字段。 |
| ValidationSummary | 显示网页中所有验证错误的报告。 |
- CompareValidator
- CompareValidator 控件用于将一个输入控件的值与另一个输入控件的值或常数值进行比较。
- 主要属性:
描述 ControlToValidate 要验证的控件的 id。 ControlToCompare 要与所验证的控件进行比较的控件名称。 Display None - 控件不显示,static静态|显示,Dynamic 动态|显示 ErrorMessage 当验证失败时,在 ValidationSummary 控件中显示的文本。/或者text IsValid 布尔值,指示由 ControlToValidate 指定的控件是否通过验证。 Operator - Equal
- GreaterThan
- GreaterThanEqual
- LessThan
- LessThanEqual
- NotEqual
- DataTypeCheck
ValueToCompare 用于比较的常数值 Type - Currency
- Date
- Double
- Integer
- String
- 实例:
添加一个名为CompareValidator.aspx的Web页面,在其中添加一个文本框,用于输入日期,要求输入的日期必须是一个当前日期以后的日期,使用CompareValidator控件来验证文本框的输入。
- 代码:
<form id="form1" runat="server">
<div>
<br />
输入日期:<asp:TextBox ID="TextBox1" runat="server" TextMode="Date"></asp:TextBox>
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="TextBox1" ValueToCompare="2018/12/11" Type="Date" Operator="GreaterThan" Display="Dynamic" ErrorMessage="日期必须在今天以后"></asp:CompareValidator>
<br />
</div>
</form>
-
- CustomValidator 控件允许您书写处理输入值验证的方法。
- 属性:
属性 描述 ClientValidationFunction 规定要被执行的客户端脚本函数的名称。 OnServerValidate 规定被执行的服务器端验证脚本函数的名称。 - 实例:
添加一个名为CustomValidator.aspx的Web页面,编写自定义验证控件的验证代码用于验证输入的正整数是素数。
- 代码:
<form id="form1" runat="server">
<div>
输入一个整数:<asp:TextBox ID="TextBox1" runat="server" TextMode="Number"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="不是素数" ContrlToValidate="TextBox1" OnServerValidate="CustomValidator1_ServerValidate"></asp:CustomValidator>
<br />
<asp:Button ID="Button1" runat="server" Text="确定" />
</div>
</form>protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs e)
{
int i;
int n = int.Parse(TextBox1.Text);
for( i = ; i <n; i++)
{
if (n % i == )
{
break;
}
}
if (i >= n)
e.IsValid = true;
else e.IsValid = false;
}
- RangeValidator
- RangeValidator 控件用于检测用户输入的值是否介于两个值之间。可以对不同类型的值进行比较,比如数字、日期和字符。
- 属性:
属性 描述 MaximumValue 规定输入控件的最大值。 MinimumValue 规定输入控件的最小值。 - 实例:
添加一个名为RangeValidator.aspx的Web页面,在其中添加一个“考生年龄”的输入文本框,要求输入的值必须在18到80之间,使用RangeValidator控件验证用户在文本框中输入的内容是否在有效范围内。
- 代码:
<form id="form1" runat="server">
<p>
考生年龄:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="TextBox1" MaximumValue="80" MinimumValue="18" Type="Integer" Text="在18-80之间" ErrorMessage ="必须在18-80之间"></asp:RangeValidator>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="确定" />
</p>
</form>
- RegularExpressionValidator
- RegularExpressionValidator 控件用于验证输入值是否匹配指定的模式。
- 主要属性:
属性 描述 ValidationExpression 规定验证输入控件的正则表达式。 - 实例:验证
固定电话 (区号-电话号)
Email( someone@domain.com)1129875586@qq.com
- 代码:
电子邮箱:<asp:TextBox ID="TextBox7" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator4" ControlToValidate ="TextBox7" ValidationExpression=".{1,}@.{3,}" runat="server" ErrorMessage="电子邮件的格式不正确"></asp:RegularExpressionValidator><asp:Label ID="Label1" runat="server" Text="固定电话"></asp:Label>
:<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" ControlToValidate="TextBox4" ValidationExpression="\\(\\d{3}\\)\\s\\d{3}-\\d{4}" ErrorMessage="电话形式为XXX-XXXXX"></asp:RegularExpressionValidator>
- RequiredFieldValidator
- RequiredFieldValidator 控件用于使输入控件成为一个必需(必填)的字段。
- 属性:
属性 描述 InitialValue 定输入控件的初始值(开始值)。默认是 ""。 - 实例:
用户名 (非空)
4.代码:
用户名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" InitialValue="" ControlToValidate="TextBox1" runat="server" ErrorMessage="用户名不能为空"></asp:RequiredFieldValidator>
1.ValidationSummary 控件用于显示网页中所有验证错误的摘要。
2.主要 属性:
| 属性 | 描述 |
| DisplayMode | 如何显示摘要。合法值有:
|
| HeaderText | ValidationSummary 控件中的标题文本 |
| ShowMessageBox | 布尔值,规定是否在消息框中显示验证摘要。 |
| ShowSummary | 布尔值,规定 ValidationSummary 控件是否显示或者隐藏。 |
7.注明:每个控件相同的属性有
| 属性 | 描述 |
| id | 控件的唯一 id。 |
| runat | 规定该控件是一个服务器控件。必须设置为 "server"。 |
| ControlToValidate | 要验证的控件的 id。 |
| ErrorMessage | 当验证失败时,在 ValidationSummary 控件中显示的文本。 注释:如果未设置 Text 属性,文本也会显示在验证控件中。 |
| IsValid | 布尔值,指示由 ControlToValidate 指定的控件是否通过验证。 |
| BackColor | 控件的背景颜色。 |
【ASP.NET】Validation 服务器控件的更多相关文章
- ASP开发中服务器控件和普通控件的区别
1.对于服务器按钮控件(即<asp:Button>类型的按钮):服务器响应事件:OnClick客户端响应属性:OnClientClick 2.对于html按钮控件(即<input t ...
- 【转】ASP.NET中服务器控件Table动态生成表格及其属性介绍
下文所有内容转自开源中国:http://www.oschina.net/question/565065_86453#tags_nav ================================= ...
- [置顶] ASP.Net中服务器控件的生命周期
(1)初始化:在此阶段中,主要完成两项工作:一.初始化在传入Web请求生命周期内所需的设置;二.跟踪视图状态.首先,页面框架通过默认方式引发Init事件,并调用OnInit()方法,控件开发人员可以重 ...
- ASP.NET中服务器控件的生命周期
服务器控件的生命周期是创建服务器控件最重要的概念.作为开发人员,必须对服务器控件生命周期深刻理解.当然,这不是一朝一夕就可以做到的.对于学习控件开发技术的初学者,可以不必掌握得非常详细深入,只需对服务 ...
- ASP.net 常用服务器控件
新人初学,有错请指,大神轻喷. .net中有HTML控件和标准服务器控件. 老师教学用的是vs2010是这样分的,不知道15里是不是这样. 如果使用HTML控件我们就会发现页面中加载了原本HTML代码 ...
- Js触发ASP.NET Validation控件的验证, 同时获取前台验证结果(不包括CustomValidator)
function CallValidate(group) { if (typeof (Page_ClientValidate) == "function") { Page_Bloc ...
- asp.net中 服务器控件中onselectedindexchanged 没有反应的解决方案
最近发现项目中一个BUG就是 DropDownList 中的onselectedindexchanged 没有反应 AutoPostBack="true"和页面中的<%@ P ...
- asp.net-常用服务器控件-20180329
常用服务器控件 1.文本类型控件 Label控件 TextBox控件 2.按钮类型控件 Button控件 ImageButton控件 3.选择类型控件 CheckBox控件 RadioButton控件 ...
- ASP.NET自定义服务器控件
本文通过创建一个最简单的服务器控件,演示开发服务器端控件的流程. 文章内容整理自MSDN的编程指南,原文地址在文章末尾的资源中. 本文创建一个简单的服务器控件,名为 RedLabel. 它的使用方式为 ...
随机推荐
- SpringBoot系列: url重定向和转发
Web UI项目中, 很多 Spring controller 视图函数直接返回 html 页面, 还有一些视图函数是要重定向或转发到其他的 url 上. redirect 和 forward的区别: ...
- docker学习-----docker服务的安装
docker 以下观点个人理解,只做参考 一.docker本身的优势 1.docker他本身是一个容器,用来方便我们项目打包,做服务器虚拟化,统一开发者环境等多种优势:运行于docker上的项目可以快 ...
- python中的转义字符
当我们需要在字符中添加特殊符号时,我们需要用\(即反斜杠来转义字符) 常用的转义字符: 注:如果不想转义添加的特殊字符,需要显示字符串原来的意思的时候,需要用r或R来定义 结果是这样的
- Ubuntu 16.04 总出现红色圆圈警告和检测到系统程序出现问题
这种问题不可忽视!不可忽视!不可忽视!重要的事情说三遍!!!(一次死机,好多文件丢失,真是痛苦的经历) 自从从第三方安装了Python3.6,并将默认3.5改为3.6,导致ubuntu16.04右上角 ...
- mysql和SQLYog工具使用
在做 android java web开发过程中,需要用到mysql数据库,使用可视化工具SQLYog管理工具,现介绍如下: 首先下载mysql工具 下载地址 https://dev.mysql. ...
- 基于scrapy-redis分布式爬虫的部署
redis分布式部署 1.scrapy框架是否可以自己实现分布式? - 不可以.原因有二. 其一:因为多台机器上部署的scrapy会各自拥有各自的调度器,这样就使得多台机器无法分配start_urls ...
- 全平台网页播放器兼容H5与Flash还带播放列表
许久不发文了,2018年第一篇文章,写点干货--关于网页播放器的问题.嗯,实际上我是在52破解首发的,当做新人贴. 目前来说,网页播放器不少,随便找找都能找到一大堆,然而好用的就那么几个,比如ckpl ...
- 入坑C++
c++中的++来自c语言中的递增运算符,该运算符将变量加1,c++起初也叫c with class ,通过通过名称表面,C++是对c的扩展,因此C++是c语言的超集,这以为这任何有效的c程序都是有效的 ...
- LuoGu P1168 中位数
题目描述 给出一个长度为 $ N $ 的非负整数序列 $ A_i $ ,对于所有 $ 1 ≤ k ≤ (N + 1) / 2 $ ,输出 $ A_1, A_3, -, A_{2k - 1} $ 的中位 ...
- 还在期待安卓9.0吗?Android 10.0要来了
目前,美国 Google公司的 AndroidP (安卓9.0),已经正式全面推出有几个多月了.众多手机品牌厂商也都在积极的进行更新适配 Android 9.0 系统(修改UI界面也算是二次开发,嗯) ...