实现功能:
1.用户输入用户名检查字数如果小于6或者大于12提示“用户名必须在6到12个字之间”
2.1成立,判断用户名是否存在,存在提示“已经被占用”
CustomValidatorDemo.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CustomValidatorDemo.aspx.cs" Inherits="CustomValidatorDemo" %>
<!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="javascript" type="text/javascript">
function ClientValidatorName(source, args) {
var name = document.getElementById("tbName");
if (name.value.length < 6) {
args.IsValid = false;
}
else if (name.value.length > 12) {
args.IsValid = false;
}
else {
args.IsValid = true;
}
}
function JSCheckUser() {
var name = document.getElementById("tbName");
var lab = document.getElementById("Label1");
if (name.value.length > 6 && name.value.length < 12) {
lab.style.display = "";
var name = $get("tbName");
WSValidator.CheckUser(name.value, OnSuccess)
}
else {
lab.style.display = "none";
}
}
function OnSuccess(result) {
var lab = $get("Label1");
lab.innerHTML = result;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/WSValidator.asmx" />
</Services>
</asp:ScriptManager>
<div>
<asp:TextBox ID="tbName" runat="server" οnblur="JSCheckUser()"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction="ClientValidatorName" Display="Dynamic"
ErrorMessage="用户名必须在6到12个字之间" ControlToValidate="tbName"></asp:CustomValidator>
<asp:Label ID="Label1" runat="server" Text="Label" style="display:none"></asp:Label>
<asp:Button ID="btnOk" runat="server" Text="提交" />
</div>
</form>
</body>
</html>
WSValidator.asmx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
/// <summary>
///WSValidator 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class WSValidator : System.Web.Services.WebService
{
public WSValidator()
{
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
public string CheckUser(string name)
{
if (name == "admin123")
{
return name + "可以使用";
}
else
{
return name + "已经被占用";
}
}
}