实现的效果图:
当什么都没输入时,点击注册按钮:
当两次密码输入不一样时:
当输入了正确的密码时:
步骤:
第一步:添加一个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;
}
}
}
}