1创建两张页面 Reg.aspx、CallServer.aspx。
在Reg.aspx页面的html中放 一个层和一个文本框
<div id="aa">
<asp:TextBox id="txtuser" runat="server" Width="136px"></asp:TextBox>
</div>
<span id="errInfo">请输入用户名</span>
在Reg.aspx页面中写javascript
定义二个变量 、三个函数
var xmlhttp=false; //放 ActiveXObject的实例
var NewsInfo=""; //放 字符串
function GetXmlHttp()
...{
if(window.ActiveXObject)
...{
try
...{
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP.3.0");
}
catch(e)
...{
try
...{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
...{
NewsInfo="服务器忙...";
}
}
}
return xmlhttp;
}
function CallServer()
...{
GetXmlHttp();
var struser=document.getElementById("txtuser").value;
if(struser=="" || struser==null)return;
var url="CallServer.aspx?user="+escape(struser);
xmlhttp.onreadystatechange=CallBack;
xmlhttp.open("post",url,true);
xmlhttp.send();
}
function CallBack()
...{
if(xmlhttp.readyState==1)
...{
NewsInfo="Loading...";
}
if(xmlhttp.readyState==4)
...{
var msg=xmlhttp.reponseText;
var spanid=document.getElementById("errInfo");
spanid.innerHTML=msg;
}
}

2在CallServer.aspx页面的page_load中写如下代码
SqlConnection conn=new SqlConnection("server=.;database=test;uid=aa;pwd=aa");
SqlCommand cmd=new SqlCommand();
private void Page_Load(object sender, System.EventArgs e)
...{
if(!this.IsPostBack)
...{
this.Bind();
}
}
private void Bind()
...{
string struser=Request.QueryString["userna"].ToString();
string strSql="select count(*) from tt where username='"+struser+"'";
cmd.Connection=conn;
cmd.CommandText=strSql;
conn.Open();
int asd=int.Parse(cmd.ExecuteScalar().ToString());
if(asd>0)
...{
Response.Write("用户名重复,请重新选择.");
Response.End();
}
else
...{
Response.Write("用户名可以使用.");
Response.End();
}
}

3在Reg.aspx页面中找到层[id="aa"]在层中写onmouseout="callserver();"
<div id="aa" onmouseout="callserver();">
<asp:TextBox id="txtuser" runat="server" Width="136px"></asp:TextBox>
</div>
本文介绍了一个使用ASP.NET和AJAX实现的简单用户名验证系统。该系统包括两个页面:Reg.aspx用于输入用户名并触发AJAX请求,CallServer.aspx用于处理服务器端逻辑。通过AJAX调用服务器端检查数据库中是否存在相同的用户名,并将结果返回给客户端显示。
985

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



