上一篇阐述了在MOSS2007中如何配置环境使之支持AJAX,在这一篇中,笔者将运用已经配置好的环境创建一个简单的AJAX Enabled WebPart,做完这个例子后,其实您会发现这和AJAX在ASP.NET中的应用是没有本质区别的,只是在SharePoint中多了一步修改事件回发的脚本而已。
本文内容概览:
1.新建ASP.Net AJAX-Enabled WebSite
2.编写相应的代码
3.部署WebPart
步骤一:新建ASP.Net AJAX-Enabled WebSite
打开Visual Studio 2005,新建一个ASP.NET AJAX-Enabled网站(需要安装过ASP.NET AJAX扩展后才有该模版),键入"AJAXEnabledWebPart"作为项目的名称,删除Default.aspx页面,右击项目,添加一个类,取名为AjaxEnabledControl.cs
步骤二:编码
引用相关的程序集以及添加对应的命名空间
System.Drawing.dll
System.Web.dll
System.Web.Extentions.dll
Microsoft.SharePoint.dll





继承 Microsoft.SharePoint.WebPartPages命名空间下的WebPart类

在类中定义需要使用到的web服务器端控件,笔者用到一个日历控件一个标签控件,您可以根据自己的需求定义,这里只为达到功能演示效果


写一个方法用于设置日历控件的样式(如果想写成用户控件,然后用QuickPart包装则不需要在后台代码中定义控件和控件的样式)
































编写一个方法用于修改WSS3.0的脚本以确保正确的回发行为,因为对于JavaScript_doPostBack()提交更改的ASP.NET控件,可能会发生整个页面的回发事件,即使在该页面上有ScriptManager控件和UpdatePanel控件,Windows SharePoint Services 3.0 和 ASP.NET AJAX 会对某些表单操作进行缓存,这会导致 SharePoint 和 ASP.NET AJAX 之间发生冲突。若要更改此行为,则必须向 Windows SharePoint Services 3.0 中运行的脚本添加代码。
























添加单击日历时触发的事件




重写WebPart类的创建子控件方法





























步骤三:部署WebPart
这一部分内容,在笔者的自定义搜索Web部件一文中有详细说明,恳请读者自行参阅
最终效果如下图显示(单击日历上的某个日期时可以看到整个页面就下图区域部分刷新,浏览器下方是没有进度条显示的):
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南