.net验证控件,导航控件

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

 二、服务器端验证(防止恶意攻击,客户端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){
    if(clientside_arguments.Value>100&&clientside_arguments.Value%2==0){
        clientside_arguments.IsValid=true;
    }else{
        clientside_arguments.IsValid=false;
    }
}

服务端:

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
    {
        int i = 0;
        if (int.TryParse(args.Value, out i))
        {
            if (i > 100 && i % 2 == 0)
            {
                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"));

转载于:https://www.cnblogs.com/huangshuhua/p/6266763.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值