当我们谈论Ajax时,首先想到的就是JavaScript下的Ajax,用来完成网页的交互,局部刷新工作,Microsoft的ASP.NET AJAX框架在Web的开发中承担着类似的角色,并简化了JavaScript中的Ajax的操作。 Microsoft的ASP.NET AJAX框架,整合了客户端脚本库和服务器的开
当我们谈论Ajax时,首先想到的就是JavaScript下的Ajax,用来完成网页的交互,局部刷新工作,Microsoft的ASP.NET AJAX框架在Web的开发中承担着类似的角色,并简化了JavaScript中的Ajax的操作。
Microsoft的ASP.NET AJAX框架,整合了客户端脚本库和服务器的开发框架,基于.NET平台和Visual Studio开发工具来创建具有良好用户体验的Web页面和服务器端的页面。
ASP.NET AJAX框架的结构体系:
1.客户端
ASP.NET AJAX是可扩展的,完全面向对象的JavaScript客户端脚本框架,允许开发者在JavaScript脚本中非常容易地调用Web Service。包含兼容IE,Firefox,Safari,Chrome等浏览器的浏览器兼容层,扩展了JavaScript的核心服务,丰富组件的基础类库,以及用来管理Web服务,应用程序通信,异步远程方法调用的网络层。
2.服务器端
ASP.NET AJAX服务器端集成了对异步客户端回调的脚本支持,Web Service的调用和实现基本AJAX应用的服务器端控件;
ASP.NET AJAX框架包含了ScriptManager,UpdatePanel,UpdaProgress和Timer四个核心的服务器端控件,核心控件之间的关系可以用下图来描述:
下面具体介绍各个控件的使用方法:
1.ScriptManager控件:
ScriptManager是ASP.NET AJAX的运行基础,用来处理页面上的所有AJAX组件,注册JavaScript脚本,注册Web Service,在AJAX的开发中,ScriptManager是必须的,且有且仅有一个。
<Scripts>
<asp:ScriptReference Path=""></asp:ScriptReference>
</Scripts>
用来注册外部的脚本文件;
<Services>
<asp:ServiceReference Path=""></asp:ServiceReference>
<Services />
用来注册Web Service;
在JavaScript中调用Web Service要经历创建Web Service,在客户端注册Web Service,在JavaScript中引用Web Service中的方法三个步骤。
下面给出一个调用Web Service的简单示例:
1 <script type="text/javascript"> myButton1_onClick() { 4 AjaxService.Greet(show); 5 } show(result) { 8 alert(result); 9 } 10 </script>
This is a example about the Web Service!
)] 2 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.Web.Script.Services.ScriptService] AjaxService : System.Web.Services.WebService { AjaxService () { 8 } 9 10 [WebMethod] Greet() 12 { ; 14 } 15 }
注:至于为什么要在JavaScript脚本中使用那样的调用方法,我也不知道,等待更新……
2.UpdatePanel和UpdateProgress控件:
UpdatePanel控件是服务器端的控件,用来创建实现局部更新的Web应用程序,强大之处在于不需要写任何JavaScript脚本就能够实现页面的局部更新;
UpdatePanel的属性之中最重要的是UpdateMode,即更新模式,有Always和Conditional两个值,当值为Conditional时,只有触发注册到该UpdatePanel上的控件时才会局部更新页面,否则的话,只要.aspx页面中包含两个或两个以上的UpdatePanel,有一个进行局部更新,其他的都会随之更新;(这个现象可以在运行整个项目Demo时发现!);
<ContentTemplate>
在这里添加需要局部更新的ASP.NET服务器端控件;
注:如果希望UpdateProgress能够正常显示,该UpdatePanel绑定的触发器控件也要在这里定义!
</ContentTemplate>
UpdateProgress控件绑定于一个或多个UpdatePanel控件,用来显示UpdatePanel控件局部更新页面的过程信息。
UpdateProgress控件的重要属性有AssociatedUpdatePanelID和DisplayAfter两个,AssociatedUpdatePanelID用来设置UpdateProgress控件绑定的UpdatePanel控件的ID,DisplayAfter用来设置UpdateProgress控件延迟显示的毫秒数。
<ProgressTemplate>
在这里添加显示状态信息的ASP.NET控件或者文本;
</ProgressTemplate>
注:如果没有定义UpdatePanel控件,就使用UpdateProgress控件,在调试的过程中会报错。
下面给出一个使用UpdatePanel和UpdateProgress控件的简单示例:
This is a example about the UpdatePanel and UpdateProgress!初始时间:当前时间:控件无法正常显示,