ASP.NET中的验证控件

时间:2022-09-24 13:45:00

ASP.NET提供了如下的控件:
  RequiredFieldValidator: 字段必填 (ControlTovalidate设定要验证的控件)
  RangeValidator: 值在给定的最大值,最小值之间()
  CompareValidator: 用于比较两个值的关系是否满足要求或者是否是指定类型的数据
  RegularExpressionValidator: 校验数据满足正则表达式
  CustomValidator: 自定义验证

Validator验证控件的共性

IsValid属性,用来判断页面中的所有Validator是否都校验通过,只有都校验通过才为True,
校验数据时必需判断该值,做出相应的措施
Display属性, 所有的验证控件都有,用来决定如何显示错误作息,一共有三个值:
Static: 占位隐藏,visiblity样式为hidden来实现隐藏
Dynamic: 不点位隐藏,display模式为none来实现隐藏
ValidationGroup属性, 验证组,当一个页面同时放置注册和登录表单时,验证就会同时进行,当登录时,
注册验证也会触发,可以使用验证组来解决,将同一组的控件(表单,提交按钮,Validator)
中的ValidationGroup属性设置一样就行了
如果将按钮控件的CausesValidation属性设置为false,则这个按钮的点击不触发校验
几乎所有的控件都有ControlToValidat,Text属性,所有控件都几乎在客户端和服务器端都要进行校验
除了非空验证控件外,其它几个默认都不会对非空进行校验,如果要不允许为空则需要手动设置

1. RequiredFieldValidator: 字段必填
  ControlTovalidate 设定要验证的控件
  ErrorMessage 设置错误输出信息与下面一样
  Text 为当被验证的控件为空的时候显示的错误信息,也可以写任何HTML内容,有时候控件如果有默认值也要认为空值的话,只要将 InitialValue 设置为那个默认值就行

2. RangeValidator: 验证值的范围
  ControlTovalidate 设定要验证的控件
  MinimumValue 最小值
  MaximumValue 最大值
  Type 类型(String,Integer,Double,Date,Currency等)

3. CompareValidator: 比较验证控件
  ControlTovalidate 设定要验证的控件
  Type 类型(String,Integer,Double,Date,Currency等)
  Operator 比较操作符,可选值DataTypeCheck,Equal,GreaterThan,GreaterThanEqul等
  ValueToCompare 比较指定的值
  ControlToCompare 设定与另外一个控件进行比较

4. RegularExpressionValidator: 校验数据满足正则表达式
  ControlTovalidate 设定要验证的控件
  ValidationExpression 指定正则表达式,自带一些常用的

5. CustomValidator: 自定义验证
  ServerValidate事件 服务端校验代码,在事件处理读取args.Value来获得待校验的值合法则将 args.IsValid 设置为true,否则为 false
  ClientValidationFunction事件 客户端校验代码(一个函数名),代码需要手动在<script>中写

//服务端验证 设置 ServerValidate事件
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
if (args.Value == "" )
{
args.IsValid = true; //相等则返回 true
}
else
{
args.IsValid = false; //不相等则返回 false
}
}
//客户端验证 设置 ClientValidationFunction事件
<script type="text/javascript">
function test(src, args) { //必需要设置两个参数src可随便设置
if (args.Value == "1") {
args.IsValid = true; //相等则返回 true
} else {
args.IsValid = false; //不相等则返回 false
}
}
</script>

 

客户端校验

有些服务器端控件的ID会自动更改,如果用 javascript 去判断,将会找不到ID,可用 ClientID 解决
如: <%=TextBox1.ClientID %> 会自动找到对应的客户端ID

案例:根据用户输入的月份判断用户输入的天数是否合法(如 2月29天),
如果用户输入2月份,天数输入31,则不合法

用户拉一个范围验证控件,与一个自定义验证控件,验证控件验证月份是否在 1-12 月,
自定义验证控件如下:

//服务端校验  设置 ServerValidate事件
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
int month = Convert.ToInt32(TextBox1.Text); //获得用户输入月份
int day = Convert.ToInt32(args.Value); //获得用户输入天数
//将每个月的天数存放在 int数组
int[] data = { , , , , , , , , , , , };
int days = data[month-]; //得到用户输入月的天数
args.IsValid = (day >= && day <= days); //判断用户输入的天数是否与程序相等
}
//客户端校验 设置 ClientValidationFunction事件
<script type="text/javascript">
function test(src, args) {
var months = document.getElementById("<%=TextBox1.ClientID %>");
var month = parseInt(months.value,10); //获得用户输入月份
var day = parseInt(args.Value,10); //获得用户输入天数 var data = [31,29,31,30,31,30,31,31,30,31,30,31];
var days = data[month-1]; //得到用户输入月的天数
args.IsValid = (day >= 1 && day <= days); //判断用户输入的天数是否与程序相等
}
</script>
汇总错误消息

使用Validator错误消息会显示在放置的位置,如果消息过长,希望把错误信息集中显示
ValidationSummary控件用来集中显示错误消息,第个验证控件都有ErrorMessage,Text两个属性
ErrorMessage是用来显示到ValidationSummary中的值,Text是用来显示到Validator位置的值
如果Text为空,则ErrorMessage会同时显示到ValidationSummary和控件的位置
一般Text的值要简短(如"必填","*"),
ValidationSummary的属性:
  DiplayMode 显示模式
  ShowMessageBox 用户同时显示警告对话框

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

  1. asp&period;net中自定义验证控件

    在windows2003中,可能iis版本太底,不支持TextBox的类型设为Number类型,所以会报错,所以去掉后直接用验证控件来控制必须输入数字好了. <asp:RegularExpres ...

  2. Visual Studio 2013新建ASP&period;NET项目使用Empty模板,在页面中使用验证控件出错的解决方案

    Visual Studio 2013新建ASP.NET项目使用Empty模板,在页面中使用验证控件,运行页面,会出现如下的错误: 错误原因 VisualStudio 2012(或2013) WebFo ...

  3. ASP&period;NET的六种验证控件的使用

    C# 中的验证控件分为一下六种 :1 CompareValidator:比较验证,两个字段的值是否相等,比如判断用户输入的密码和确认密码是否一致,则可以用改控件: 2 CustomValidator ...

  4. &lpar;转&rpar;客户端触发Asp&period;net中服务端控件事件

    第一章. Asp.net中服务端控件事件是如何触发的 Asp.net 中在客户端触发服务端事件分为两种情况: 一. WebControls中的Button 和HtmlControls中的Type为su ...

  5. asp&period;net中的ListBox控件添加双击事件

    问题:在Aspx页里的ListBox A中添加双击事件,将选中项添加到另一个ListBox B中,双击ListBox B中的选中项,删除当前选中项 页面: <asp:ListBox ID=&qu ...

  6. ASP&period;NET中 WebForm 窗体控件使用及总结【转】

    原文链接:http://www.cnblogs.com/ylbtech/archive/2013/03/06/2944675.html ASP.NET中 WebForm 窗体控件使用及总结. 1.A, ...

  7. Semantic UI中的验证控件的事件的使用

    1.Semantic UI中的验证控件,功能挺不错的,中文官网的文档写的都比较详细了,我再这里就不再进行重复了,主要是想说一下它的事件的使用方法,这个可能有部分朋友刚开始接触的时候不太了解 注意看这几 ...

  8. webForm中的验证控件

    1.非空验证控件:RequireFieldValidator  :2.数据比较验证:CompareValidator :3.数据范围验证:RangeValidator :4.正则表达式验证:Regul ...

  9. webform中的验证控件及两个应用技巧

    一.非空验证--RequiredFiledValidator <一>属性: ErrorMessage--验证出错后的提示信息 ControlToValidate--要验证的控件的ID Di ...

随机推荐

  1. JAVA NIO——Buffer和FileChannel

    Java NIO和IO的主要区别 IO NIO 面向流 面向缓冲 阻塞IO 非阻塞IO 无 选择器 示例: import java.io.FileInputStream; import java.io ...

  2. Qt5 主窗口组成

    1. 菜单栏 菜单是一系列命令的列表.为了实现菜单.工具栏按钮.键盘快捷键等命令的一致性,Qt使用动作(Action)来表示这些命令.Qt的菜单就是由一系列的QAction动作对象构成的列表,而菜单栏 ...

  3. &lbrack;课程设计&rsqb;Scrum 1&period;3 多鱼点餐系统开发进度

    [课程设计]Scrum 1.3 多鱼点餐系统开发进度   Scrum 1.3 多鱼点餐系统开发进度 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追 ...

  4. AD批量创建用户

    实验环境:Windows Server 2008R 2 由于测试需要,需要创建数百个用户,手动创建当然不可取,此时需要批量创建,操作记录如下 1 首先将要批量创建的人员信息导入到一个csv文件中,表中 ...

  5. Sqli-labs less 22

    Less-22 本关和less20.less21是一致的,我们可以从源代码中看到这里对uname进行了"uname"的处理,可以构造payload: admin1"and ...

  6. 笔记:Spring Cloud Ribbon 客户端配置详解

    自动化配置 由于 Ribbon 中定义的每一个接口都有多种不同的策略实现,同时这些接口之间又有一定的依赖关系,Spring Cloud Ribbon 中的自动化配置能够很方便的自动化构建接口的具体实现 ...

  7. ORACLE PL&sol;SQL编程:把触发器说透

    本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创建DML触发器 8.2. ...

  8. 大数据技术 - MapReduce的Combiner介绍

    本章来简单介绍下 Hadoop MapReduce 中的 Combiner.Combiner 是为了聚合数据而出现的,那为什么要聚合数据呢?因为我们知道 Shuffle 过程是消耗网络IO 和 磁盘I ...

  9. docker下创建crontab定时任务失败

    创建过程 基础镜像采用的centos7.2,需要安装一下crontab,在dockerfile中加以下语句就可以了: # crontab jobs RUN yum -y install crontab ...

  10. C&plus;&plus;学习(十四)(C语言部分)之 数组

    上期回顾:三大循环 for while do while (循环体至少会执行一次)四大跳转 goto continue(提前跳出当前循环 进入下一个循环) break(跳出本次循环) return(跳 ...