第八讲 常用的Web服务器控件(二)

来源:互联网 发布:天启秒杀软件 编辑:程序博客网 时间:2024/06/07 18:25
用户登陆验证实例:
    runat="server" 这个属性可以使HTML控件在后台C#代码中被调用

    看以下脚本代码:
    function LoginCheck() {
            var name = document.getElementById("tbName").value;
            var pwd = document.getElementById("tbPwd").value;
            if (name == "") {
                alert("用户名不能为空");
                document.getElementById("tbName").focus();
                return false;
            }
            if (pwd == "") {
                alert("密码不能为空");
                document.getElementById("tbPwd").focus();
                return false;
            } else {
                return true;
            }
        }

    代码中的return false;的作用是,当满足条件时不进行向服务器提交表单数据。只有当return true;时才向服务器提交数据,以此减少服务器负担。

    还有就是:
    1. HTML控件调用C#事件时,一要添加runat="server" 属性,二要使用onserverclick事件属性
    2. ASP.NET控件调用JS脚本时,使用onClientClick事件。
    3. HTML控件,无论在客户端还是在服务器端,都是通过其value属性获取其值的。它没有ASP.NET控件那么多的属性和事件。


主要内容

    1. 熟练掌握各类验证控件。
    用户注册时,输入了不合标准的信息,怎么办?
        1. 后台手写验证代码:页面回传,用户体验不好
        2. 使用JavaScript脚本进行验证:不安全,与浏览器相关。

    2. ASP.NET提供了验证控件
        1. 能轻松实现浏览器验证,且与浏览器无关
        2. 由在客户端或服务器中运行的验证代码执行
        3. 多种验证控件,验证数据更加简单方便

    3. ASP.NET验证控件
        1. RequireFieldValidator非空验证
            优点:简单易用,只需要设置错误提示信息和指向要验证的控件ID就可以了。
            原理:此控件内置了JS验证控件的脚本
            
            缺点:如果客户端禁用了活动脚本怎么?
            如果禁用了JS脚本,客户端会直接对服务器进行提交数据,即不管客户端需要验证的控件是否为空,它都进行提交,同时服务器不管是不是空的都会执行用户名和密码的判断操作。            

            不用担心,微软帮我们考虑到了这个问题,如果客户端禁用了JS脚本,那就进行双向验证,即在服务器端去获取客户端的验证控件的验证状态,可以使用page对象中的IsValid属性
            如:
            //当客户端禁用了JS脚本后,使用Page对象中的IsValid属性
            if (Page.IsValid)//即只有被验证控件非空时才执行下面的代码块
            {
                if (tbName.Text.Trim() == "admin" && tbPwd.Text.Trim() == "123")
                {
                    Response.Write("登陆成功");
                }
                else
                {
                    Response.Write("用户名或密码错误!");
                }
            }

        2. CompareValidator比较验证控件
            主要用在注册中的密码重校验操作
            同样简单易用
            1. 错误信息提示内容
            2. 要验证的控件
            3. 要将所验证控件进行对比的控件

        3. RangeValidator范围区域验证控件
            验证用户的输入是否满足某个范围或区域
            1. 指定需要验证的控件ID
            2. 错误提示信息
            3. 数据类型type
            4. 最大值和最小值

        4. RegularExpressionValidator正则表达式验证控件
            使用该控件预设的正则表达式来验证用户输入
            1. 错误提示信息
            2. 指定需要验证的控件
            3. 选择系统预设好的验证用户输入的正则表达式

        5. CustomValidator综合验证控件,既可以进行客户端验证,也可以进行服务器端验证,老师让自学,而且还是最重要的一个控件
            此控件,验证过程就是通过
                前端HTML的JS脚本生成客户端函数或
                服务器端生成的事件函数,
                函数中默认的两个参数,
                一个是object,
                一个是对象携带参数EventArgs。
                EventArgs中的Value值就是用户在被验证控件里输入内容,
                根据用户的输入,设置EventArgs的IsValid属性值,
                即可。
            如:
            控件的服务器端事件:OnServerValidate="方法名"
            控件的客户端属性:ClientValidationFunction="方法名"



        6. ValidationSummary
0 0
原创粉丝点击