ASP.NET中的验证控件

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 == "1" )
        {
            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 = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
        int days = data[month-1];                   //得到用户输入月的天数
        args.IsValid = (day >= 1 && 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 用户同时显示警告对话框

时间: 2024-10-13 22:12:50

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

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

Visual Studio 2013新建ASP.NET项目使用Empty模板,在页面中使用验证控件,运行页面,会出现如下的错误: 错误原因 VisualStudio 2012(或2013) WebForm 4.5 开发中,很多控件默认Enable了 Unobtrusive ValidationMode(所谓Unobtrusive Validation,就是一种隐式的验证方式)的属性(和jquery的引用相关),但并未对其进行赋值, Programmer必须手动对其进行设置.比如,在进行数据验证时

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

1.Semantic UI中的验证控件,功能挺不错的,中文官网的文档写的都比较详细了,我再这里就不再进行重复了,主要是想说一下它的事件的使用方法,这个可能有部分朋友刚开始接触的时候不太了解 注意看这几个事件:前两个是对于字段验证通过和失败之后的事件的调用,后两个是对整个form是否都验证通过或者失败时调用的事件,于是我们在调用的时候可以这么写 function login() { $(".ui.form").form( { username: { identifier: 'userNa

webForm中的验证控件

1.非空验证控件:RequireFieldValidator  :2.数据比较验证:CompareValidator :3.数据范围验证:RangeValidator :4.正则表达式验证:RegularExpressionValidator :5.自定义条件验证: CustomValidator 非空验证控件:RequireFieldValidator 当某个接受用户输入的控件中的内容,不能为空时,使用RequiredFildValidator控件, 必须设置以下两个属性: ErrorMess

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

一.非空验证--RequiredFiledValidator <一>属性: ErrorMessage--验证出错后的提示信息 ControlToValidate--要验证的控件的ID Display--显示方式(Static--不显示也占空间)(Dynamic--不显示不占空间) InitialValue--验证的初始值,被验证控件的值与此值相同的话,就认为是空 <二>场景: 填没填 初始值变没变--通过设置InitialValue来实现 二.对比验证--CompareValida

ASP.NET中多个控件共享同一事件,sender的使用

当多个控件共享同一事件时,同时还需要在事件中区分到底是点击了那个控件时,就需要通过控件事件中的sender参数.方法是在事件中定义该控件的变量,如RadioButton控件的公共事件就定义 RadioButton radBtn = (RadioButton)sender; 这样就可以通过定义的控件变量去区分是那个控件触发了事件.如radBtn.ID就可以取到触发事件控件的ID属性.

ASP.NET中的另类控件

首先看一个aspx文件里的部分内容: [html] view plaincopy <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <he

ASP.Net中数据展示控件的嵌套使用

1,工作中遇到这样一个需求,页面上要把所有的User加载出来,同时每个User后面紧跟着要把User的任务加载出来!我的处理方法是用Repeater来加载所有的User,同时在Repeater里面嵌套一个GridView,将每个User的任务展示出来!代码如下 前台代码: <asp:Repeater ID="Repeater1" runat="server" onitemdatabound="Repeater1_ItemDataBound"

解决Asp.net中的Chart控件运行出现错误提示“ ChartImg.axd 执行子请求时出错”

首先经过错误提示看出需要保存路径之类的,所以猜测是不是配置文件出错了.看了一下配置文件只有连接字符串的配置.后来重新把vs2010关了重新打开,又新建了一个页面,重新添加空间然后运行使用.然后再看配置文件,发现多了许多东西.具体没有配置的东西如下: <?xml version="1.0"?> <!-- 有关如何配置 ASP.NET 应用程序的详细消息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 --> &l

ASP.Net中数据展示控件的嵌套使用示例

www.qdmm.com/BookReader/1086869,68369517.aspxwww.qdmm.com/BookReader/1086869,68369519.aspxwww.qdmm.com/BookReader/1086869,68369521.aspxwww.qdmm.com/BookReader/1086869,68369523.aspxwww.qdmm.com/BookReader/1086869,68369524.aspxwww.qdmm.com/BookReader/1