在MOSS中使用.Net3.5中的Ajax功能

简介:
网上有很多文章介绍如何在MOSS中使用Ajax1.0的框架。其实自从.net3.5推出之后,在.net3.5中已经自带了Ajax的功能。本文主要介绍如何在VS2005中使用.net3.5中的Ajax功能,以及如何在MOSS中使用.net3.5中的Ajax功能。

首先肯定需要下载一个.net3.5,这个网上有很多。
下面就主要介绍一些和Ajax1.0在使用和配置方面有差别的地方,至于.net3.5中Ajax的具体使用和Ajax1.0是差不多的,园子里也有很多的介绍文章。

一、在VS2005中使用
以前Ajax1.0的时候可以下载一个VS2005的插件,安装好之后会多出一个特定的Ajax的项目,创建这种类型的项目就可以使用Ajax1.0的功能了。
这个插件主要做了两件事:
1、在网站的web.config中加入了一些配置项。
在.net3.5的时候我们可以手工在web.config中加入Ajax的配置:
       < httpHandlers >
        
< remove  verb ="*"  path ="*.asmx" />
        
< add  verb ="*"  path ="*.asmx"  validate ="false"  type ="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        
< add  verb ="*"  path ="*_AppService.axd"  validate ="false"  type ="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        
< add  verb ="GET,HEAD"  path ="ScriptResource.axd"  type ="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"  validate ="false" />
      
</ httpHandlers >      
      
< httpModules >
        
< add  name ="ScriptModule"  type ="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      
</ httpModules >
从配置上看相对Ajax1.0的时候,更加简单了,而且使用的也是.net比较规范的方法,通过注册一些httphandle和httpmodule来捕获特定的Ajax的请求达到异步刷新的效果。

2、在工具箱中加入Ajax的控件
我们也可以手工在VS2005的工具箱上-〉右键-〉选择项....,然后在".net framework组件"的tab中选择所有程序集名称为System.Web.Extensions(3.5.0.0)的控件,插入就可以了。
加入之后就会在工具箱中看到相应的控件(当然只是一些基本的控件),然后就可以按照Ajax1.0的方法进行开发了。

二、在MOSS中使用.net3.5中的Ajax功能
1、修改配置
这一步和上面一样,将上面的配置加入对应MOSS站点的web.config文件中就可以了

2、在VS2005中编写Webpart
这个也是按照常规的方式编写webpart,在这个webpart中使用Ajax中的控件。但是自己的webpart要针对Ajax进行一些特殊处理。我这里参考网上的资料写了一个父类,可以直接从这个父类继承就可以了。
 1 public   abstract   class  AjaxBasePart : System.Web.UI.WebControls.WebParts.WebPart
 2 {
 3    private ScriptManager _AjaxManager;
 4
 5    public AjaxBasePart()
 6    {
 7    }

 8
 9    protected override void OnInit(EventArgs e)
10    {
11        base.OnInit(e);
12
13        //取得存在的ScriptManager
14        _AjaxManager = ScriptManager.GetCurrent(this.Page);
15
16        if (_AjaxManager == null)
17        {
18            //创建ScriptManager
19            _AjaxManager = new ScriptManager();
20            _AjaxManager.ID = this.ID + "$AjaxManager";
21            _AjaxManager.EnablePartialRendering = true;
22
23            if (this.Page.Form != null)
24            {
25                //解决Ajax按钮只能执行一次的问题
26                string formOnSubmitAtt = this.Page.Form.Attributes["onsubmit"];
27                if (!string.IsNullOrEmpty(formOnSubmitAtt) && formOnSubmitAtt == "return _spFormOnSubmitWrapper();")
28                {
29                    this.Page.Form.Attributes["onsubmit"= "_spFormOnSubmitWrapper();";
30                }

31
32                this.Page.Form.Controls.AddAt(0, _AjaxManager);
33            }

34        }

35    }

36}
最主要的代码有两处:
1、14行的地方取得 ScriptManager 对象,如果没有的话才创建,然后在32行的时候作为form的第一个控件插入。因为一个页面中只能出现一个 ScriptManager 对象

2、在26-30之间用来解决UpdatePanel中的按钮只能执行一次的情况。在MOSS中直接使用Ajax的控件时存在一些兼容性方面的问题,需要进行一些特殊处理。如果不加入这段代码,那么在UpdatePanel中出现的按钮只能点击一次,下次再点击的时候没有反应。



    本文转自永春博客园博客,原文链接:http://www.cnblogs.com/firstyi/archive/2008/04/26/1169963.html,如需转载请自行联系原作者

相关文章
|
3月前
|
人工智能 开发框架 .NET
.NET技术的强大功能:.NET技术的基础特性、在现代开发中的应用、以及它如何助力未来的软件开发。
.NET技术是软件开发领域的核心支柱,以其强大功能、灵活性及安全性广受认可。本文分三部分解析:基础特性如多语言支持、统一运行时环境;现代应用如企业级与Web开发、移动应用、云服务及游戏开发;以及未来趋势如性能优化、容器化、AI集成等,展望.NET在不断变化的技术环境中持续发展与创新。
107 4
|
5天前
.NET 4.0下实现.NET4.5的Task类相似功能组件
【10月更文挑战第29天】在.NET 4.0 环境下,可以使用 `BackgroundWorker` 类来实现类似于 .NET 4.5 中 `Task` 类的功能。`BackgroundWorker` 允许在后台执行耗时操作,同时不会阻塞用户界面线程,并支持进度报告和取消操作。尽管它有一些局限性,如复杂的事件处理模型和不灵活的任务管理方式,但在某些情况下仍能有效替代 `Task` 类。
|
18天前
|
开发框架 .NET 开发工具
.NET 9 中 LINQ 新增的功能
.NET 9 中 LINQ 新增的功能
|
6月前
|
开发框架 前端开发 JavaScript
ASP.NET AJAX使用方法概述(三)
ASP.NET AJAX使用方法概述(三)
47 1
|
6月前
|
定位技术 API C#
.NET开源、功能强大、跨平台的图表库
.NET开源、功能强大、跨平台的图表库
|
3月前
|
开发框架 JavaScript 前端开发
提升生产力:8个.NET开源且功能强大的快速开发框架
提升生产力:8个.NET开源且功能强大的快速开发框架
|
3月前
|
Unix Linux C#
增强用户体验:2个功能强大的.NET控制台应用帮助库
增强用户体验:2个功能强大的.NET控制台应用帮助库
|
3月前
|
设计模式 前端开发 数据可视化
LiveCharts2:简单灵活交互式且功能强大的.NET图表库
LiveCharts2:简单灵活交互式且功能强大的.NET图表库
58 0
|
5月前
|
存储 编解码 算法
C#.NET逃逸时间算法生成分形图像的毕业设计完成!晒晒功能
该文介绍了一个使用C#.NET Visual Studio 2008开发的程序,包含错误修复的Julia、Mandelbrot和优化过的Newton三种算法,生成色彩丰富的分形图像。作者改进了原始算法的效率,将内层循环的画点操作移至外部,提升性能。程序提供五种图形模式,支持放大缩小及颜色更新,并允许用户自定义画布大小以调整精度。还具备保存为高质JPG的功能。附有四张示例图片展示生成的分形效果。
|
4月前
|
C# 开发者 Windows
4款.NET开源、功能强大的Windows桌面工具箱
4款.NET开源、功能强大的Windows桌面工具箱