
<%...@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="AjaxProVerify._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script language="jscript" type="text/jscript">...
function VerifyUsername(name)
...{
AjaxProVerify._Default.GetReturnCode(name, IsUsernameExist_callback);
}
function IsUsernameExist_callback(res)
...{
var msg = document.getElementById('lblMessage');
var bRet = res.value;
if (bRet == "0")
...{
msg.innerHTML = '用户名存在!';
msg.style.color = 'red';
}
else if (bRet == "1")
...{
msg.innerHTML = '用户名长度必须在3到15之间,且不包含字母、数字和下划线以外的字符!';
msg.style.color = 'red';
}
else
...{
msg.innerHTML = '用户名不存在!';
msg.style.color = 'green';
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label id="Label1" runat="server">用户名:</asp:Label>
<asp:TextBox id="tbUsername" runat="server" onkeyup="VerifyUsername(this.value)"></asp:TextBox>
<br/>
<asp:Label id="lblMessage" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
这个程序采用的AjaxPro的1.1版,所以需要在HTML页的第一行的inherites里加上命名空间。
以下是这个页面的CS的代码。
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
namespace AjaxProVerify
...{
public partial class _Default : System.Web.UI.Page
...{
protected void Page_Load(object sender, EventArgs e)
...{
AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));
}
[AjaxPro.AjaxMethod]
public string GetReturnCode(string strUsername)
...{
if (!IsValidUsername(strUsername))
...{
return "1";
}
else if (!IsUsernameExist(strUsername))
...{
return "2";
}
else
...{
return "0";
}
}
private bool IsUsernameExist(string strUsername)
...{
bool bRet = false;
switch (strUsername.ToLower())
...{
case "test":
case "123":
case "1234":
bRet = true;
break;
}
return bRet;
}
private bool IsValidUsername(string strUsername)
...{
return (Regex.IsMatch(strUsername, @"^(w{3,15})$"));
}
}
}

这些程序都是亲手测试的,只要粘贴就可使用。不过不要忘了web.config的设置,以及添加DLL的引用
本文介绍了一个使用AjaxPro实现的用户名实时验证系统。该系统能够在用户输入过程中即时反馈用户名是否存在及是否符合规定格式,通过正则表达式校验用户名的有效性,并在服务器端检查用户名是否已被占用。
354

被折叠的 条评论
为什么被折叠?



