本文示例源代码或素材下载 字串1
前段时间,懒羊采用ajax asp开发了一套页面屏聊系统,后来有些朋友问我能否移植到.Net中去。由于工作关系,正好前段时间需要用微软的Asp.Net Ajax开发包开发一套项目,所以对此作了个简单了解,发现使用Asp.Net Ajax开发包去开发要比原来的asp ajax简单得多,而且开发完后对浏览器的兼容也大大的提高了。因此懒羊这里就再次献丑,将一些开发心得提供出来与大家一起分享,并提供用户控件供大家下载使用。
字串2
一、Asp.NET Ajax框架介绍
主要对Asp.NET Ajax的安装以及本文中所要用到的控件进行简单的说明,大家如有兴趣可以通到网络上查询更多的资料。 字串5
1、何为Asp.NET Ajax?
Asp.NET Ajax原代号“Atlas”是一个集成了强大的客户端脚本库的Web技术开发包,并且能够与Asp.NET 2.0紧密的结合在一起。我们在Web 应用程序开发中,通过它可以直接调用Web服务器来更新Web页面上某个部分的数据,而不需要重新加载页面来达到页面数据的更新。 字串1
当然Asp.Net Ajax的功能并不是仅仅只有如上所叙的那么点点,由于很多的功能我们这里用不到,就不多费口舌了。ASP.NET AJAX Control Toolkit中有数十种超炫的控件,大家有兴趣可以一个个试试。 字串9
2、Asp.NET Ajax如何安装?
关于Asp.NET Ajax的组成主要有三块内容:
① ASP.NET AJAX:这部分是ASP.NET AJAX的核心部分,包括了核心AJAX类型系统,网络协议层(networking stack),组件模型,扩展器(extender)基类,以及与ASP.NET集成的服务器端功能(包括广受欢迎的ScriptManager,UpdatePanel,和 Timer控件)。 字串3
② ASP.NET AJAX Futures CTP:这一部分就是被ASP.NET AJAX暂时“抛弃”的原有CTP版本中“非核心”的部分,也叫做“Value-add”包,其中包括服务器端的扩展器控件(Extender Control)、Web部件,客户端的各种控件、拖放功能实现、ASP.NET AJAX XML脚本等。所谓“抛弃”,实际上只是意味着微软公司暂时不会对这些内容进行官方的支持,而选择使用“社区支持”的方法。这样,微软公司将不会为这部分内容提供详细的开发文档,开发者只能在社区中互相讨论以找到问题的解决方案。若要安装这部分内容,则必须首先安装“核心”部分的ASP.NET 2.0 AJAX Extensions。 字串8
③ ASP.NET AJAX Control Toolkit: 它是一个免费的、开源的、由微软公司和开发者社区共同创建的ASP.NET服务器端控件包,其中包含了数十种基于ASP.NET AJAX的、组件化的、提供某个专一Ajax功能的ASP.NET AJAX服务器端控件和ASP.NET AJAX扩展器控件,这些控件同样是创建一个完善的Ajax应用程序所必不可少的。 字串8
ASP.NET AJAX Control Toolkit下载后为压缩包文件,在下载完成以后直接解压,解压后先运行AjaxControlExtenderAjaxControlExtender.vsi进行安装,安装成功后打开Visual Studio.NET 2005并在工具栏添加SampleWebSiteBinAjaxControlToolkit.dll。 字串9
由于本文只采用到ScriptManager、UpdatePanel、Timer等控件,因此只需要安装ASP.NET AJAX就可以完成屏聊的开发。安装成功后我们打开Visual Studio.NET 2005中并新建Web Site,在项目模板中会出现一项ASP.NET AJAX-enabled Web site,如下图:
图一 在Visual Studio.NET中添加AJAX控件
并且会在工具箱中出现AJAX Extensions控件,如下图:
字串4
字串7
图二 Visual Studio.NET工具栏中AJAX Extensions控件
字串7
3、ScriptManager控件
ScriptManager是Asp.NET Ajax一个重要的控件,它用来处理页面上的所有Asp.NET Ajax组件以及局部页面的更新,生成相关的客户端脚本,所有需要支持Asp.NET Ajax的ASP.NET页面上有且只能有一个ScriptManager控件。在ScriptManager控件中我们可以指定需要的脚本库,或者指定通过JS来调用的Web Service,还可以指定页面错误处理。 字串2
Script属性用来包含那些ASP.NET Atlas自带的标准JS库或者是自定义的JS脚本。我们可以使用Path属性来指定一个JS的路径或者使用ScriptName来指定脚本名。
代码如下:
字串1
4、UpdatePanel控件 字串4
UpdatePanel控件是一个功能非常强大的控件,同样的我这里也不去讲太多关于此控件的用法,主要记住以下两个属性。 字串5
① Triggers属性 字串6
Triggers的类型有两种AsyncPostBackTrigger,PostBackTrigger。 字串2
AsyncPostBackTrigger主要用来指定某个控件的某个事件引发异步回传(asynchronous postback),即部分更新。属性有ControlID和EventName。分别用来指定控件ID和控件事件,若没有明确指定EventName的值,则自动采用控件的默认值,比如button就是click。把ContorlID设为UpdatePanel外部控件的ID,可以使外部控件控制UpdatePanel的更新。 字串2
PostBackTrigger是来指定UpdatePanel内的某个控件引发整个页面的更新(normal postback)。 字串1
例如:
② UpdateMode 属性 字串8
UpdateMode同样有两个值:Always(总是更新),Conditional(有条件更新)。 字串3
确定当asynchronous postbacks发生时,是否总是更新。若页面中只有一个UpdatePanel控件,这个值好像没有什么意义。但是当页面中存在多个UpdatePanel,或者UpdatePanel中包含UpdatePanel的复杂情况时,这个值的设定就可以使各个UpdatePanel在各种合适时机更新,而我们这个系统就会出现多个UpdatePanel,并且会嵌套使用。
![我要研发网[www.51dev.com]](/templets/images/toplogo.gif)
