1、ASP.NET Ajax框架教程 郑 健目录1.概述32.应用场景代码示例3(1)ScriptManager控件示例31) 在异步调用服务端注册客户端脚本新方法32) 捕获Ajax异步调用中错误(默认使用alert提示)53) 捕获Ajax异步调用中的错误(自定义输出错误方式)7(2)UpdatePanel控件示例94) RenderMode属性用法示例95) UpdateMode用法示例106) ChildrenAsTriggers属性用法示例127) Triggers属性用法示例13(3)UpdateProgress控件示例148) 在异步更新时显示滚动进度条14(4) Timer控件示例
2、169)在客户端无刷新定时执行服务端方法16(5) Ajax中新Validators控件用法示例1710) Validators控件的使用配置示例17(6) 在客户端请求服务端最基本的执行方式1911) 使用Ajax library类库中的客户端WebReqest对象请求服务端19(7) 在客户端调用页面后台(Page behind)中的方法2212) 在客户端调用页面后台(Page behind)中的方法示例22(8) 在客户端调用WebService中的服务端方法2413) 调用WebService示例24(9) 错误回调处理2614) 掌握客户端错误回调处理方法26(10) Ajax l
3、ibrary客户端编程特性2915) ASP.NET Ajax框架中的客户端对象与服务端对象交互2916)DataSet/DataTable/DataRow正反序列化JSON格式程序集使用3217) 客户端类使用Sys.StringBuilder的示例3618) WebRequestManager对象的客户端事件示例39(11) 在Ajax操作中访问 Session,Cache,Application 对象4119) 在WebService方法中使用Session/Cache/Application对象4120) 在Page后台方法中使用Session/Cache/Application对象4
4、5(12) Ajax 客户端类库对现有 JavaScript对象的扩展功能4921) 扩展Array对象方法forEach使用示例4922) 对 JavaScript Function对象扩展, 注册事件新方式5023) Ajax对String对象扩展方法String.format的使用51(13) 在Ajax library中的客户端面向对象(OO)功能5224) 客户端注册命名空间, 定义接口, 类继承示例52(14) A Ajax 中的多语功能5525) ASP.NET服务端使用全局和本地资源文件示例5526) ASP.NET客户端使用全局和本地资源文件示例571.概述 利用业余时间学习
5、了一下微软的ASP.NET Ajax框架, 我在学习时顺便整理了这个教程。此教程主要针对开发应用场景和功能点进行展开示例,包括26个精简的小例子,在实际开发中也可以作为查找手册使用。 ASP.NET Ajax更偏重于客户端编程, 因此使用它不仅使编程更加灵活, 而且由于Ajax是轻量级,请求效率也较高。2.应用场景代码示例(1)ScriptManager控件示例1) 在异步调用服务端注册客户端脚本新方法前台页面代码: 当前时间: 后台服务端代码:public partial class _AA_ScriptManager_RegistClientScript_Default : System.
6、Web.UI.Page protected void Page_Load(object sender, EventArgs e) protected void Button1_Click1(object sender, EventArgs e) /Ajax框架中新调用方式 ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), UpdateSucceed, alert(Update time succeed!), true); /默认调用方式(在异步调用XmlHttp方式中无效) /Page.ClientSc
7、ript.RegisterStartupScript(this.GetType(), UpdateSucceed, alert(Update time succeed!); 2) 捕获Ajax异步调用中错误(默认使用alert提示)前台页面代码: !- AllowCustomErrorsRedirect=false 表示遇到错误不跳转到Web.Config中定义的错误处理页面 如果设置为true, 则出错时会自动将页面跳转到当前站点根目录下面的DisplayError.aspx页面. - 后台页面代码:public partial class _AA_ScriptManager_GetAsyc
8、Error_Default : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) protected void Button1_Click(object sender, EventArgs e) int a = 5, b = 0; int c = a / b; protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e) ScriptManager.GetCurrent(th
9、is).AsyncPostBackErrorMessage = e.Exception.Message; 3) 捕获Ajax异步调用中的错误(自定义输出错误方式)前台页面代码: !- AllowCustomErrorsRedirect=false 表示遇到错误不跳转到Web.Config中定义的错误处理页面 如果设置为true, 则出错时会自动将页面跳转到当前站点根目录下面的DisplayError.aspx页面. - !-注意add_endRequest方法不能写到中, 因为这时ScriptManager实例还没有创建. 不好之处是方法写在块中使页面有些乱.- Sys.WebForms.Pa
10、geRequestManager.getInstance().add_endRequest(function(sender, e)e.set_errorHandled(true); /表示自定义显示错误, 将默认的alert提示禁止掉.$get(divMessage).innerHTML = e.get_error().message;); 后台服务端代码:public partial class _AA_ScriptManager_GetAsycDetailError_CustomDisplayError_Default : System.Web.UI.Page protected void
11、 Page_Load(object sender, EventArgs e) protected void Button1_Click(object sender, EventArgs e) int a = 5, b = 0; int c = a / b; (2)UpdatePanel控件示例4) RenderMode属性用法示例 UpdatePanel1(Display设置为Block)UpdatePanel2(Display设置为Block)UpdatePanel3(Display设置为Inline)UpdatePanel4(Display设置为Inline) 5) UpdateMode用
12、法示例 UpdatePanel1时间:UpdatePanel2时间: 6) ChildrenAsTriggers属性用法示例 UpdatePanel1时间: UpdatePanel2时间: 7) Triggers属性用法示例 当前时间: (3)UpdateProgress控件示例8) 在异步更新时显示滚动进度条 当前时间: (4) Timer控件示例9)在客户端无刷新定时执行服务端方法 当前时间: %- -% %-当前时间: -% (5) Ajax中新Validators控件用法示例 使用VS 2005默认的验证控件在异步操作时会有些问题, 微软推出了与现有控件名称一一对应的一系列验证控件。1
13、0) Validators控件的使用配置示例 !- 另外, 还要在Web.Config中指定使用bin下面的Validators.dll中的验证控件: - (6) 在客户端请求服务端最基本的执行方式11) 使用Ajax library类库中的客户端WebReqest对象请求服务端前台页面代码: function ExecuteAjaxRequest(text)var request = new Sys.Net.WebRequest();request.set_url(ClientWebRequest.ashx);request.set_httpVerb(POST);request.add_completed(onComplete);