一、客户端验证(用户体验,减少服务器端压力)

 二、服务器端验证(防止恶意攻击,客户端js很容易被绕过)

 验证控件:RequiredFieldValidator:字段必填;RangeValidator:值在给定的最大值、最小值之间;CompareValidator:用于比较两个值的关系是否满足要求或者是否是指定类型的数据;RegularExpressionValidator:校验数据满足正则表达式;CustomValidator:自定义验证。

 属性:

  非空验证:ControlToValidate:设置要验证的控件;Text:显示错误消息;ErrorMessage:提供给ValidationSummary控件,如果Text为空,也会取ErrorMessage的值;Diaplay:Static:没有错误信息的时候控件的visiblity样式为hidden来实现隐藏;Dynamic:没有错误信息的时候控件的display样式为none来实现隐藏。这两者的区别是是visiblity:hidden隐藏控件仍然会占据空间,而display:none隐藏则不会占空间。Page.isValid:指示页面验证是否通过。验证控件在服务器端验证代码,默认在Page_Load事件之后执行。如想立即执行,需调用Page.Validate方法。SetFocusOnError:验证不通过时,该控件是否获得焦点;InitialValue:设置验证控件的默认值。如果控件的值没有改变,则认为要验证的控件值为空。

  比较验证:Operator:比较操作符,可选值DataTypeCheck、Equal、GreaterThan、GreaterThanEqul、LessThan、LessThanEqual、NotEqual。ValueToCompare:所比较的运算符右边的值。ControlToCompare:设定与另外一个控件进行比较。Type属性为数据类型(String、Integer、Double、Date、Currency等)。用法一 :两个控件比较 (Demo:比较两次输入的密码是否相同)。ControlToValidate (符号左边的),ControlToCompare 待比较的控件(符号右边的),Operator 比较操作,Type属性。用法二 :与一个定值进行比较(Demo:年龄必须大于18岁)。ValueToCompare,Operator 比较操作,Type属性。用法三: 类型检查 (Demo 年龄必须为数字)。ControlToVlidate 待检查类型的控件id,Operator DataTypeCheck,Type。

 当验证控件所指定的控件内容为空时,除了RequiredFieldValidator会触发验证,其他验证控件都不会。因为我们有这样的需求,在填写一张表的时候,有必填项有非必填项,非必填项可以不填写值,但如果填写,就一定要正确。所以除非空验证控件之外的其他验证控件所验证的控件,如果为空,则不会被查检,反之只要填写内容,为了保证正确,就要检查。所以对于年龄大于18岁并且又要求年龄必须填写这一需求,我们要使用非空和比较两个验证控件来实现。

 RangeValidator范围验证控件(Demo:订10天以内的火车票):MinimumValue、MaximumValue属性:为最大、最小值。在Page_Load事件中赋值。Type属性同ComareValidator。

 RegularExpressionValidator正则表达式验证控件:ValidationExpression 正则表达式 Vs提供常用的正则表达式。Demo:身份证 QQ号 Email地址 用户名在3-10位之间

 CustomValidator,自定义验证控件。当ASP.Net内置的验证控件无法满足要求的时候可以使用CustomValidator。需要手写客户端和服务器端验证代码,设置ClientValidationFunction。参考代码如下:

客户端:

function ClientValidate(source,clientside_arguments){
    &&clientside_arguments.Value%==){
        clientside_arguments.IsValid=true;
    }else{
        clientside_arguments.IsValid=false;
    }
}

服务端:

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
    {
        ;
        if (int.TryParse(args.Value, out i))
        {
             && i %  == )
            {
                args.IsValid = true;
            }
            else {
                args.IsValid = false;
            }
        }
        else {
            args.IsValid = false;
        }
    }

 ValidationSummary控件:用来集中显示错误消息。每个验证控件都有ErrorMessage、Text两个属性,ErrorMessage是用来显示到ValidationSummary中的值,Text是用来显示到Validator位置的值,如果Text为空,则ErrorMessage会同时显示到ValidationSummary和控件的位置。一般Text的值要简短,因为直接显示到控件的位置,能知道指的是哪个控件;ErrorMessage要详细一些,这样才能从ValidationSummary每条错误信息中读取值出来。ValidationSummary的属性:DiplayMode,显示模式,ShowMessageBox显示警告对话框。ShowSummary显示错误汇总

 Ajax中使用验证控件:Page_ClientValidate(null)调用页面所有验证控件;ValidatorValidate(验证控件id,验证分组,null)调用页面单个验证控件。
 ValidationGroup分组问题
 不需要触发验证控件的按钮 CausesValidation=“false” 

 服务器端控件处于母板页或模版中时,控件的服务端ID和客户端ID不同,在js中要用ClientID属性获得客户端ID(<%=id.ClientID%>)。

 在asp.net中提供了面包屑导航控件:SiteMapPath,需要提供站点地图,站点地图是基于xml格式的,站点地图的文件名必须为:Web.sitemap。TreeView一般用于左侧的树型菜单导航,可以基于一个xml文件,也可以通过写代码来操作。Menu一般用菜单导航。

 代码:

TreeView2.Nodes.Add(new TreeNode("a"));TreeView2.Nodes[0].ChildNodes.Add(new TreeNode("b"));
TreeView2.Nodes[0].ChildNodes[0].ChildNodes.Add(new TreeNode("c"));

.net验证控件,导航控件的更多相关文章

  1. 【完全开源】百度地图Web service API C#.NET版,带地图显示控件、导航控件、POI查找控件

    目录 概述 功能 如何使用 参考帮助 概述 源代码主要包含三个项目,BMap.NET.BMap.NET.WindowsForm以及BMap.NET.WinformDemo. BMap.NET 对百度地 ...

  2. 【转】【完全开源】百度地图Web service API C#.NET版,带地图显示控件、导航控件、POI查找控件

    [转][完全开源]百度地图Web service API C#.NET版,带地图显示控件.导航控件.POI查找控件 目录 概述 功能 如何使用 参考帮助 概述 源代码主要包含三个项目,BMap.NET ...

  3. 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(四)地图导航控件模块

    config.xml文件的配置如下: <widget left="10" top="50" config="widgets/Navigation ...

  4. 使用 ViewPager 和 RadioGroup 封装的一个导航控件

    import android.animation.ObjectAnimator; import android.content.Context; import android.graphics.dra ...

  5. openlayers4 入门开发系列之地图导航控件篇(附源码下载)

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  6. BottomNavigationBar 底部导航控件

    BottomNavigationBar 底部导航控件 属性 说明BottomNavigationBarItem 多个 item,iconSize icon大小currentIndex 默认选中第几个o ...

  7. 3ds Max 中的导航控件SteeringWheels入门介绍

    介绍 软件环境:3d Max2015 SteeringWheels 3D导航控件也可以说是“追踪菜单”,通过它们可以使用户从单一的工具访问不同的2D和3D导航工具.SteeringWheels可分成多 ...

  8. 3ds Max 中的导航控件ViewCube入门介绍

    介绍 ViewCube 3D导航控件提供当前方向的视觉反馈,让用户可以调整视图方向以及在标准视图与等距视图间进行切换. 软件环境:3d Max2015 第一步.启动3d Max软件,打开场景文件 Vi ...

  9. Add an Item to the Navigation Control 将项目添加到导航控件

    In this lesson, you will learn how to add an item to the navigation control. For this purpose, the N ...

随机推荐

  1. Mediocre String Problem (2018南京M,回文+LCP 3×3=9种做法 %%%千年好题 感谢"Grunt"大佬的细心讲解)

    layout: post title: Mediocre String Problem (2018南京M,回文+LCP 3×3=9种做法 %%%千年好题 感谢"Grunt"大佬的细 ...

  2. FZU-2216 The Longest Straight(尺取法)

     Problem 2216 The Longest Straight Accept: 523    Submit: 1663Time Limit: 1000 mSec    Memory Limit ...

  3. POJ 3977:Subset(折半枚举+二分)

    [题目链接] http://poj.org/problem?id=3977 [题目大意] 在n个数(n<36)中选取一些数,使得其和的绝对值最小. [题解] 因为枚举所有数选或者不选,复杂度太高 ...

  4. 六. 异常处理10.Java的内置异常

    在标准包java.lang中,Java定义了若干个异常类.前面的例子曾用到其中一些.这些异常一般是标准类RuntimeException的子类.因为java.lang实际上被所有的Java程序引入,多 ...

  5. 玩转Nuget服务器搭建(一)

    背景                                                                                      公司项目是分模块进行架构 ...

  6. 从内存溢出看Java 环境中的内存结构

    作为有个java程序员,我想大家对下面出现的这几个场景并不陌生,倍感亲切,深恶痛绝,抓心挠肝,一定会回过头来问为什么为什么为什么会这样,嘿嘿,让我们看一下我们日常在开发过程中接触内存溢出的异常: Ex ...

  7. javascript - 封装jsonp

    jsonp牵扯到同源策略.跨域等问题,这里不细说了. 实现就是创建动态的script标签来请求后台地址: 示例: jsonp('xxx.php', { uid: 1 }, function (res) ...

  8. defer,panic,recover

    Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱.因为开发者很容易滥用异常,甚至一个小小的错误都抛出一个 ...

  9. Codeforces Round #262 (Div. 2)解题报告

    详见:http://robotcator.logdown.com/posts/221514-codeforces-round-262-div-2 1:A. Vasya and Socks   http ...

  10. python——Container之字典(dict)详解

    字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取. ...