asp.net WebForm 验证控件的使用

实现的效果图:
在这里插入图片描述
当什么都没输入时,点击注册按钮:
在这里插入图片描述
当两次密码输入不一样时:
在这里插入图片描述
当输入了正确的密码时:
在这里插入图片描述
步骤:
第一步:添加一个web窗体,命名为:Regist
在这里插入图片描述
在这里插入图片描述
第二步:Regist.aspx的代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Regist.aspx.cs" Inherits="WebApplication3.Regist" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <link href="Content/login.css" rel="stylesheet" />
</head>
<body>
    <form id="form1" runat="server">
        <div class="page">
            <div class="loginwarrp">
                <div class="logo">用户注册</div>
                <div class="login_form">
                    <ul>
                        <li class="login-item">
                            <span>用户名:</span>
                            <asp:TextBox ID="txtUser" runat="server" class="login_input"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="输入用户名" ControlToValidate="txtUser" ForeColor="Red"></asp:RequiredFieldValidator>
                        </li>
                        <li class="login-item">
                            <span>密码:</span>
                            <asp:TextBox ID="txtPwd" runat="server" class="login_input"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="输入密码" ControlToValidate="txtPwd" ForeColor="Red"></asp:RequiredFieldValidator>

                        </li>
                        <li class="login-item">
                            <span>确认密码:</span>
                            <asp:TextBox ID="txtPwdSet" runat="server" TextMode="Password" class="login_input"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="输入密码" ForeColor="Red" Display="Dynamic" ControlToValidate="txtPwdSet"></asp:RequiredFieldValidator>
                            <asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="两次密码输入不一致" ControlToValidate="txtPwdSet" ControlToCompare="txtPwd" ForeColor="Red"></asp:CompareValidator>
                        </li>
                        <li class="login-sub">
                            <asp:Button ID="btnOK" runat="server" Text="注册" OnClick="btnOK_Click" />
                            <input id="Reset1" type="reset" value="重置" />
                        </li>
                        <li class="login-item">
                            <asp:Label ID="lblMessage" runat="server" Text="" ForeColor="#CC0000"></asp:Label>

                        </li>
                    </ul>
                </div>
            </div>
        </div>
    </form>
</body>
</html>

第三步:Regist.aspx.cs的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication3
{
    public partial class Regist : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnOK_Click(object sender, EventArgs e)
        {
            //Page对象的属性,返回bool值
            //指示该页面是否验证成功
            if (Page.IsValid)
            {
                lblMessage.Text = "信息注册成功";
            }
        }
    }
}

第四步:样式文件login.css

body{
    background:#ddd;
}
ol,ul,li{
    list-style:none;
}
.loginwarrp{
    margin:250px auto;
    width:400px;
    padding:30px 50px;
    background:#FFFFFF;
    overflow:hidden;
    font-size:14px;
    font-family:'微软雅黑','文泉驿正黑','黑体';
}
.loginwarrp .logo{
    width:100%;
    height:44px;
    line-height:44px;
    font-size:20px;
    text-align:center;
    border-bottom:1px solid #ddd;
}
.loginwarrp .login_form{
    margin-top:15px;
}
.loginwarrp .login_form .login-item{
    padding:2px 8px;
    border:1px solid #dedede;
    border-radius:8px;
    margin-top:10px;
}
.loginwarrp .login_form .login_input{
    height:35px;
    border:none;
    line-height:35px;
    width:200px;
    font-size:14px;
    outline:none;
}
.loginwarrp .login_form .verify{
    float:left;
}
.loginwarrp .verify .verify_input{
    width:160px;
}
.loginwarrp .verifyimg{
    height:30px;
    margin:20px 0 0 20px;
}
.loginwarrp .login-sub{
    text-align:center;
}
    .loginwarrp .login-sub input {
        margin-top: 15px;
        background: #45B549;
        line-height: 35px;
        width: 150px;
        color: #FFFFFF;
        font-size: 16px;
        font-family: '微软雅黑','文泉驿正黑','黑体';
        border:none;
        border-radius:5px;
    }
    .loginwarrp .login_form .login-item .error {
        color: #F00;
        font-family: '微软雅黑','文泉驿正黑','黑体';
    }

注意:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

现在多加入两个标签用来显示年龄和邮箱
使用范围验证控件来判断年龄是否符合规定范围、使用正则表达式验证控件来判断邮箱格式是否正确

效果图如下:
什么都不输入的情况下:
在这里插入图片描述
都输入正确:
在这里插入图片描述
当年龄范围不在18-120岁时,以及邮箱格式不正确的时候:
在这里插入图片描述
代码如下:regist.aspx的代码,其余代码不变

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Regist.aspx.cs" Inherits="WebApplication3.Regist" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <link href="Content/login.css" rel="stylesheet" />
</head>
<body>
    <form id="form1" runat="server">
        <div class="page">
            <div class="loginwarrp">
                <div class="logo">用户注册</div>
                <div class="login_form">
                    <ul>
                        <li class="login-item">
                            <span>用户名:</span>
                            <asp:TextBox ID="txtUser" runat="server" class="login_input"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="输入用户名" ControlToValidate="txtUser" ForeColor="Red"></asp:RequiredFieldValidator>
                        </li>
                        <li class="login-item">
                            <span>密码:</span>
                            <asp:TextBox ID="txtPwd" runat="server" class="login_input"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="输入密码" ControlToValidate="txtPwd" ForeColor="Red"></asp:RequiredFieldValidator>

                        </li>
                        <li class="login-item">
                            <span>确认密码:</span>
                            <asp:TextBox ID="txtPwdSet" runat="server" TextMode="Password" class="login_input"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="输入密码" ForeColor="Red" Display="Dynamic" ControlToValidate="txtPwdSet"></asp:RequiredFieldValidator>
                            <asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="两次密码输入不一致" ControlToValidate="txtPwdSet" ControlToCompare="txtPwd" ForeColor="Red"></asp:CompareValidator>
                        </li>
                        <li class="login-item">
                            <span>输入年龄:</span>
                            <asp:TextBox ID="txtAge" runat="server" class="login_input"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ErrorMessage="输入年龄" ControlToValidate="txtAge" ForeColor="Red" Display="Dynamic"></asp:RequiredFieldValidator>
                            <asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="年龄错误" ControlToValidate="txtAge" MaximumValue="120" MinimumValue="18" Type="Integer" Display="Dynamic" ForeColor="Red"></asp:RangeValidator>
                        </li>
                        <li class="login-item">
                            <span>输入邮箱:</span>
                            <asp:TextBox ID="txtEmail" runat="server" class="login_input" Display="Dynamic"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ErrorMessage="输入邮箱" ForeColor="Red" Display="Dynamic" ControlToValidate="txtEmail" ></asp:RequiredFieldValidator>
                            <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="邮箱格式不正确" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ControlToValidate="txtEmail" ForeColor="Red" Display="Dynamic"></asp:RegularExpressionValidator>
                        </li>
                        <li class="login-sub">
                            <asp:Button ID="btnOK" runat="server" Text="注册" OnClick="btnOK_Click" />
                            <input id="Reset1" type="reset" value="重置" />
                        </li>
                        <li class="login-item">
                            <asp:Label ID="lblMessage" runat="server" Text="" ForeColor="#CC0000"></asp:Label>

                        </li>
                    </ul>
                </div>
            </div>
        </div>
    </form>
</body>
</html>

现在再加入两个控件:自定义验证控件用来验证用户是否存在

首先需要在用户名处添加一个自定义验证控件:
在这里插入图片描述
第二步:找到它的它的ServerValidate事件,命名为:IsUserNameExist
在这里插入图片描述
双击事件编写代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication3
{
    public partial class Regist : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnOK_Click(object sender, EventArgs e)
        {
            //Page对象的属性,返回bool值
            //指示该页面是否验证成功
            if (Page.IsValid)
            {
                lblMessage.Text = "信息注册成功";
            }
        }

        protected void IsUserNameExist(object source, ServerValidateEventArgs args)
        {
            //ServerValidateEventArgs包括两个属性,value为被验证表单的字段值
            //isvalid为是否验证成功
            if (args.Value == "123")
            {
                args.IsValid = false;
            }
            else
            {
                args.IsValid = true;
            }
            
        }
    }
}

效果图如下:
在这里插入图片描述
接下来再加入一个控件,错误汇总控件,效果图如下
在这里插入图片描述
第一步:在最后加入一个错误汇总控件
在这里插入图片描述
然后在所有的非空验证控件中,添加一个属性Text="*"即可。

综上所述:
最终完整代码:
Regist.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Regist.aspx.cs" Inherits="WebApplication3.Regist" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <link href="Content/login.css" rel="stylesheet" />
</head>
<body>
    <form id="form1" runat="server">
        <div class="page">
            <div class="loginwarrp">
                <div class="logo">用户注册</div>
                <div class="login_form">
                    <ul>
                        <li class="login-item">
                            <span>用户名:</span>
                            <asp:TextBox ID="txtUser" runat="server" class="login_input"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="输入用户名" ControlToValidate="txtUser" ForeColor="Red" Text="*"></asp:RequiredFieldValidator>
                            <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="用户已存在" ForeColor="Green" ControlToValidate="txtUser" OnServerValidate="IsUserNameExist"></asp:CustomValidator>
                        </li>
                        <li class="login-item">
                            <span>密码:</span>
                            <asp:TextBox ID="txtPwd" runat="server" class="login_input"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="输入密码" ControlToValidate="txtPwd" ForeColor="Red" Text="*"></asp:RequiredFieldValidator>

                        </li>
                        <li class="login-item">
                            <span>确认密码:</span>
                            <asp:TextBox ID="txtPwdSet" runat="server" TextMode="Password" class="login_input"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="输入密码" ForeColor="Red" Display="Dynamic" ControlToValidate="txtPwdSet" Text="*"></asp:RequiredFieldValidator>
                            <asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="两次密码输入不一致" ControlToValidate="txtPwdSet" ControlToCompare="txtPwd" ForeColor="Red"></asp:CompareValidator>
                        </li>
                        <li class="login-item">
                            <span>输入年龄:</span>
                            <asp:TextBox ID="txtAge" runat="server" class="login_input"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ErrorMessage="输入年龄" ControlToValidate="txtAge" ForeColor="Red" Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
                            <asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="年龄错误" ControlToValidate="txtAge" MaximumValue="120" MinimumValue="18" Type="Integer" Display="Dynamic" ForeColor="Red"></asp:RangeValidator>
                        </li>
                        <li class="login-item">
                            <span>输入邮箱:</span>
                            <asp:TextBox ID="txtEmail" runat="server" class="login_input" Display="Dynamic"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ErrorMessage="输入邮箱" ForeColor="Red" Display="Dynamic" ControlToValidate="txtEmail" Text="*"></asp:RequiredFieldValidator>
                            <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="邮箱格式不正确" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ControlToValidate="txtEmail" ForeColor="Red" Display="Dynamic"></asp:RegularExpressionValidator>
                        </li>
                        <li class="login-sub">
                            <asp:Button ID="btnOK" runat="server" Text="注册" OnClick="btnOK_Click" />
                            <input id="Reset1" type="reset" value="重置" />
                        </li>
                        <li class="login-item">
                            <asp:Label ID="lblMessage" runat="server" Text="" ForeColor="#CC0000"></asp:Label>

                        </li>
                        <li class="login-item">
                            <asp:ValidationSummary ID="ValidationSummary1" runat="server" ForeColor="Red"/>
                        </li>
                    </ul>
                </div>
            </div>
        </div>
    </form>
</body>
</html>

Regist.aspx.cs中的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication3
{
    public partial class Regist : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnOK_Click(object sender, EventArgs e)
        {
            //Page对象的属性,返回bool值
            //指示该页面是否验证成功
            if (Page.IsValid)
            {
                lblMessage.Text = "信息注册成功";
            }
        }

        protected void IsUserNameExist(object source, ServerValidateEventArgs args)
        {
            //ServerValidateEventArgs包括两个属性,value为被验证表单的字段值
            //isvalid为是否验证成功
            if (args.Value == "123")
            {
                args.IsValid = false;
            }
            else
            {
                args.IsValid = true;
            }
            
        }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值