六月的津城,天气依旧很热。最近有点时间,去网易注册了个邮箱,挺有意思,注册了6个名称,好家伙,这六个名称都被别的
用户注册了。我很郁闷,意外的是它的及时提醒信息相当的好。之前大家是否遇到这样的问题:我去一个网站注册,填了一堆东
西,点提交,倒霉的是来了这样的话,“你的用户名已被别人注册,请重新填写。”又重新填了一遍,得到的是相同答案。在也没
有了那种热情去注册了,算了吧,不注册也罢。这样的问题,让人纠结,然而,后来就有了解决的技术。
使用Ajax,WebService 共同打造(用户名是否已被注册提醒),说到此处,还得感谢周公大哥也就是《夜话视频教程》的作者,
微软的MVP。他很牛的,我看了他的讲解后,并且去网易注册的经历,我想把自己学习的过程做个随笔记录。
开场台词有点多,进入正文吧!
1,流程:
使用1) VS2008自带的Ajax控件, 先建个页面, 页面代码:
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="True" EnableScriptLocalization="True" >
<Services>
<asp:ServiceReference Path="ZhuCeWebService.asmx" />
</Services>
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div>
用户名: <asp:TextBox ID="txtUserName" runat="server" Width="237px" οnkeyup="return CheckUserName(this);"></asp:TextBox> <asp:Label ID="lblUserName" runat="server" Text="" ForeColor="Red"></asp:Label>
<br />
<br />
密码: <asp:TextBox ID="txtPWD" runat="server" Width="244px"></asp:TextBox>
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="注册" οnclick="Button1_Click" Width="56px" />
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
<script language="javascript" type="text/javascript">
function CheckUserName(obj)
{
var userName=obj.value;
ZhuCeWebService.CheckUser(userName,HuiDiao);
}
function HuiDiao(returnResult) //此法随便定义,回调方法
{
document.getElementById("lblUserName").innerText=returnResult;//输出的提示消息
}
</script>
有οnkeyup="return CheckUserName(this);" 事件,调用function CheckUserName(obj)脚本。
接着去调用 ZhuCeWebService.CheckUser(userName,HuiDiao);
这是APP_CODE下的类ZhuCeWebService.CheckUser(userName,HuiDiao);的方法。
2)建一个WEB服务 ZhuCeWebService.asmx,他里面一句话,重点看APP_CODE下的类,即ZhuCeWebService.cs
里面代码:
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService] //.............//因为是AJAX调用WebService,所以必须取消注释。
public class ZhuCeWebService : System.Web.Services.WebService
{
public ZhuCeWebService()
{
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
[WebMethod]
public string CheckUser(string userName)
{
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=你自己的;User ID=sa ;Password=www.csdn");
SqlCommand com = new SqlCommand("select *from UserInfo", conn);
SqlDataAdapter da = new SqlDataAdapter(com);
DataTable dt = new DataTable();
da.Fill(dt);
DataRow[] dr = dt.Select("UserName='" + userName+"'");//("TxtCode = '" + TxtCode +"'");
return (dr.Length > 0) ? "用户已存在,不能注册!" : "此用户可以注册!";
}
}
到此为止,注册及时提醒就告一段落了。
总结:使用Ajax无刷新技术,调用web服务,实现信息提醒。
此文是初学者随手记录,有不到处,望高人指点。 7.24