`
lovnet
  • 浏览: 6878433 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Ajax即时实现服务端数据验证(Asp.net 2.0)(示例代码下载)

阅读更多

学习 [征服Ajax——Web 2.0快速入门与项目实践(.net)]

(一). 运行效果如下:

(二). 代码

1. 页面 *.aspx 前台代码如下:

1<body>
2<formid="form1"runat="server">
3<scripttype="text/javascript">
4varcbo=newCallBackObject();
5cbo.OnComplete=Cbo_Complete;
6cbo.OnError=Cbo_Error;
7functionCheckUserName(UserName)
8{
9varmsg=document.getElementById('lblMessage');
10if(UserName.length>0)
11{
12cbo.DoCallBack('tbUsername','');
13}

14else
15{
16cbo.AbortCallBack();
17msg.innerHTML='';
18}

19}

20functionCbo_Complete(responseText,responseXML)
21{
22varmsg=document.getElementById('lblMessage');
23if(responseText=='0')
24{
25msg.innerHTML='合法用户!';
26msg.style.color='green';
27}

28elseif(responseText=='1')
29{
30msg.innerHTML='用户名长度必须在3到15之间,且不包含字母/数字/下划线以外的字符!';
31msg.style.color='red';
32}

33else
34{
35msg.innerHTML='用户名不存在!';
36msg.style.color='red';
37}

38}

39functionCbo_Error(status,statusText,responseText)
40{
41//alert('status='+status+'responseText='+responseText+'statusText='+statusText);
42}

43</script>
44<div>
45<asp:PanelID="Panel1"runat="server"BackColor="#C0C0FF"Font-Bold="True"Font-Overline="False"
46Font-Size="XX-Large"Height="37px"Width="459px">
47AJAX数据验证</asp:Panel>
48<br/>
49<hralign="left"style="width:463px"/>
50<br/>
51输入用户名:&nbsp;
52<asp:TextBoxID="tbUsername"runat="server"OnTextChanged="tbUsername_TextChanged"></asp:TextBox><br/>
53<br/>
54<asp:LabelID="lblMessage"runat="server"Width="246px"></asp:Label></div>
55</form>
56</body>

2. 页面 *.aspx.cs后台代码如下:

11publicpartialclass_Default:System.Web.UI.Page
22{
33protectedvoidPage_Load(objectsender,EventArgse)
44{
55tbUsername.Attributes.Add("OnKeyUp","CheckUserName(this.value)");
66}
77protectedvoidtbUsername_TextChanged(objectsender,EventArgse)
88{
99if(!CallBackHelper.IsCallBack)
1010return;
1111
1212stringstrName=tbUsername.Text;
1313
1414try
1515{
1616stringstrReturnCode;
1717if(!IsValidUsername(strName))
1818{
1919strReturnCode="1";
2020}
2121elseif(!IsUsernameExist(strName))
2222{
2323strReturnCode="2";
2424}
2525else
2626{
2727strReturnCode="0";
2828}
2929CallBackHelper.Write(strReturnCode);
3030}
3131catch(Exceptionex)
3232{
3333CallBackHelper.HandleError(ex);
3434}
3535}
3636privateboolIsUsernameExist(stringstrUsername)
3737{
3838boolbRet=false;
3939
4040switch(strUsername.ToUpper())
4141{
4242case"KING":
4343case"ROSE":
4444bRet=true;
4545break;
4646}
4747
4848returnbRet;
4949}
5050
5151privateboolIsValidUsername(stringstrUsername)
5252{
5353return(Regex.IsMatch(strUsername,@"^(\w{3,15})$"));
5454}
5555}

3. Ajax主要的JS文件代码如下:

11//JScriptFile
22functionCallBackObject()
33{
44this.XmlHttp=this.GetHttpObject();
55}
66CallBackObject.prototype.GetHttpObject=function()
77{
88varxmlhttp;
99/*@cc_on
1010@if(@_jscript_version>=5)
1111try{
1212xmlhttp=newActiveXObject("Msxml2.XMLHTTP");
1313}catch(e){
1414try{
1515xmlhttp=newActiveXObject("Microsoft.XMLHTTP");
1616}catch(E){
1717xmlhttp=false;
1818}
1919}
2020@else
2121xmlhttp=false;
2222@end@*/
2323if(!xmlhttp&&typeofXMLHttpRequest!='undefined')
2424{
2525try
2626{
2727xmlhttp=newXMLHttpRequest();
2828}
2929catch(e)
3030{
3131xmlhttp=false;
3232}
3333}
3434returnxmlhttp;
3535}
3636CallBackObject.prototype.DoCallBack=function(eventTarget,eventArgument)
3737{
3838vartheData='';
3939vartheform=document.forms[0];
4040varthePage=window.location.pathname+window.location.search;
4141vareName='';
4242theData='__EVENTTARGET='+escape(eventTarget.split("$").join(":"))+'&';
4343theData+='__EVENTTARGUMENT='+eventArgument+'&';
4444
4545theData+='__VIEWSTATE='+escape(theform.__VIEWSTATE.value).replace(newRegExp('\\+','g'),'%2b')+'&';
4646theData+='IsCallBack=true&';
4747for(vari=0;i<theform.elements.length;i++)
4848{
4949eName=theform.elements[i].name;
5050if(eName&&eName!='')
5151{
5252if(eName=='__EVENTARGET'||eName=='__EVENTARGUMENT'||eName=='__VIEWSTATE')
5353{
5454}
5555else
5656{
5757theData=theData+escape(eName.split("$").join(":"))+'='+theform.elements[i].value;
5858if(i!=theform.elements.length-1)
5959{
6060theData=theData+'&';
6161}
6262}
6363}
6464}
6565if(this.XmlHttp)
6666{
6767if(this.XmlHttp.readyState==4||this.XmlHttp.readyState==0)
6868{
6969varoThis=this;
7070this.XmlHttp.open('POST',thePage,true);
7171this.XmlHttp.onreadystatechange=function()
7272{
7373oThis.ReadyStateChange();
7474};
7575this.XmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
7676this.XmlHttp.send(theData);
7777}
7878}
7979}
8080
8181CallBackObject.prototype.AbortCallBack=function()
8282{
8383if(this.XmlHttp)
8484{
8585this.XmlHttp.abort();
8686}
8787}
8888
8989CallBackObject.prototype.OnLoading=</sp
分享到:
评论

相关推荐

    ASP.NET AJAX程序设计——第I卷:服务器端ASP.NET 2.0 AJAX Extensions与ASP.NET AJAX Control Toolkit 源代码

    只要在Visual Stuio中轻松拖放即可实现强大的客户端Ajax功能,例如局部页面更新、异步回送、拖放、动画等,非常适合为现有的ASP.NET 2.0应用程序添加少量的Ajax特性,或是基于ASP.NET 2.0的一些简单Ajax功能的实现。...

    ASP.NET 2.0入门经典:C#编程篇.pdf

    7. ** Membership 和 Role Management **:ASP.NET 2.0引入了会员(Membership)和角色(Role)管理,用于用户身份验证和授权,简化了安全性的实现。 8. **配置管理**:ASP.NET 2.0的配置系统允许开发者在不修改...

    天轰穿ASP.NET2.0视频教程代码(共两部份)

    此"天轰穿ASP.NET2.0视频教程"针对初学者和进阶开发者,通过详细的教学指导,帮助用户掌握ASP.NET 2.0的核心概念和技术。 1. **ASP.NET 2.0架构** ASP.NET 2.0基于.NET Framework 2.0,引入了统一的页面生命周期...

    Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0)\Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0).rar

    Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0)\Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0).rar

    ASP.NET 2.0程序设计案例教程(课件)

    5. **会员和角色管理**:ASP.NET 2.0引入了安全性和身份验证的改进,如身份验证服务、成员资格提供程序和角色提供程序。这些使得创建安全的登录系统和权限控制变得简单。 6. **配置和部署**:课程可能涉及如何配置...

    ASP.net 2.0网络编程从入门到精通-修订.rar

    ASP.NET 2.0是微软开发的一个用于构建Web应用程序的框架,它建立在.NET Framework的基础之上,为开发者提供了丰富的功能和高效的语言支持。本资源"ASP.NET 2.0网络编程从入门到精通-修订"显然是一个教程文档,旨在...

    Programming Microsoft ASP.NET 2.0 Applications - Advanced Topics

    5. **安全性和身份验证**:书中会讲解如何实现ASP.NET 2.0的安全特性,如Windows身份验证、Forms身份验证、角色管理和权限控制,以及如何防止常见的Web攻击。 6. **Web服务和AJAX**:探讨如何创建和消费ASP.NET Web...

    asp.net 2.0动态网站开发教程

    虽然ASP.NET 2.0本身并不直接支持AJAX,但可以通过使用UpdatePanel控件和ScriptManager组件实现部分页面更新,这在一定程度上提供了类似AJAX的功能。 九、Web服务和WCF ASP.NET 2.0还提供了创建和消费Web服务的能力...

    Microsoft ASP.NET 2.0 AJAX Extensions 1.0.zip

    主要用来解决:Parser Error Message: Could not load file or assembly 'System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies....

    Microsoft Ajax For asp.net2.0

    【Microsoft Ajax for ASP.NET 2.0】是一个关键的技术组件,它为开发人员提供了一种在Web应用程序中实现异步交互的能力。这个技术是.NET Framework 2.0的一部分,允许开发者构建更动态、响应更快的网页,提升用户...

    Wrox Asp.Net 2.0 Instant Results(asp.net2.0经典案例教程)

    在ASP.NET 2.0中,微软引入了一系列增强功能,如控件生命周期的改进、数据绑定模型的扩展、母版页(Master Pages)和站点导航等,极大地提高了开发效率和代码复用性。书中将深入探讨这些关键特性,并通过实际项目来...

    ASP.NET2.0实用教程(C#版)书中例子.rar

    这个“ASP.NET2.0实用教程(C#版)书中例子”PPT很可能会涵盖以上这些主题,并通过实例演示如何在实践中应用这些技术。PPT中的例子可能包括创建简单的Web表单、使用控件进行数据绑定、实现用户身份验证以及利用AJAX...

    ASP.NET2.0 AJAX

    ASP.NET2.0 AJAX包括:ASP.NET 2.0 AJAX Extensions和ASP.NET Futures CTP.放心下载可用! 支持vs2005sp1!不要用vs2005的哟!否则web.config中会出现错误的!

    asp.net2.0 调用websevice 实现天气预报

    在本项目中,“asp.net2.0 调用websevice 实现天气预报”,我们将探讨如何利用ASP.NET 2.0集成Web服务(Web Service)来获取并展示实时天气信息,从而实现一个无刷新的天气预报应用。 首先,Web服务是一种基于XML的...

    ASP.NET 2.0功能源码

    这个"ASP.NET 2.0功能源码"压缩包文件很可能是为了帮助学习者理解并探索ASP.NET 2.0的关键特性和功能而提供的实际代码示例。 在ASP.NET 2.0中,有许多关键知识点值得深入探讨: 1. **控件体系**:ASP.NET 2.0引入...

    ASP.NET 2.0入门经典(第4版)源码

    8. **AJAX支持**:虽然ASP.NET 2.0本身不包含Ajax框架,但可以通过UpdatePanel和ScriptManager等控件实现部分页面更新,提升Web应用的响应速度和用户体验。 9. **Web服务(Web Services)**:ASP.NET 2.0支持创建和...

    ASP.NET2.0+sql server 网络应用开发详解

    在ASP.NET 2.0版本中,引入了许多新特性,如改进的页面生命周期管理、母版页(Master Pages)用于统一网站布局、自定义控件增强用户体验、配置管理工具简化部署过程、以及ASP.NET AJAX框架实现页面无刷新交互等。...

    ASP.NET2.0 AJAX开发组件包

    Validators.zip是在Bet1a,Beta2,RC中自带但在Relase中被移到ASP.NET 2.0补丁包中的AJAX兼容性Validators控件库,在新的ASP.NET2.0补丁包安装之前可以先用此库代替。具体用法祥见Scott老大的Blog ...

    精通ASP.NET2.0+SQL Server 2005项目开发 源码.rar

    1. 用户认证与授权系统:展示如何利用ASP.NET 2.0的身份验证和授权机制,实现用户登录、注册、权限控制等功能。 2. 数据展示与分页:通过GridView、Repeater等控件,演示如何从SQL Server 2005中检索并展示数据,...

Global site tag (gtag.js) - Google Analytics