我有一个带有 myScriptManager
和 my的简单页面UpdatePanel
,并且 myContentTemplate
有一个ListBox
和一个标签。我只是想抓住它OnSelectionChanged
,这样我就可以更新Label
. 无论我尝试调整什么设置,我总是会收到整页的回传。
这真的行不通,还是我只是搞砸了?
我有一个带有 myScriptManager
和 my的简单页面UpdatePanel
,并且 myContentTemplate
有一个ListBox
和一个标签。我只是想抓住它OnSelectionChanged
,这样我就可以更新Label
. 无论我尝试调整什么设置,我总是会收到整页的回传。
这真的行不通,还是我只是搞砸了?
您需要拥有 Sharepoint 2007 service pack 1——否则就没有机会了。(Sharepoint 2007 早于 ajax 1.0——他们在 service pack 1 中内置了一些支持)
接下来,从故障排除的角度,测试托管在常规 asp.net 页面中的完全相同的代码是否可以正常运行。(从字面上复制并粘贴您的代码到一个新页面,以排除任何印刷错误)。将共享点划入或划出问题区域将有助于缩小解决方案空间。
如果您已经安装了 SharePoint 2007(没有 Service Pack 1),那么您可以按照以下文章中的示例进行操作:
AjaxBasePart:Easy ASP.NET 2.0 AJAX Extensions 1.0 和 Office SharePoint Server 2007
这样做的原因是混合 doPostback、UpdatePanel 和 SharePoint 存在一个特定问题 - 症状正是您所看到的:整页回发而不是异步回发。有关解决方法,请参阅此知识库文章:包含使用 _doPostBack() 的 ASP.NET AJAX 1.0 UpdatePanel 控件的 Web 部件...
否则,您只需安装 Service Pack 1 即可解决您的问题:
混合 doPostback、UpdatePanel 和 SharePoint 存在一个特定问题——症状正是您所看到的:整页回发而不是异步回发。有关解决方法,请参阅此知识库文章:http: //support.microsoft.com/kb/941955
Mindsharp 的 Todd Bleeker 向我展示了他编写的一段代码,该代码可以在 Sharepoint 2.0 上使用 Ajax。这很酷。如果您想看一下,我相信该公司在他们的 sharepoint 站点管理软件上使用了它。(您过去可以申请 30 天试用)。我敢打赌如何在他们的 yahoo 组上进行操作(我不记得名字了,但我敢肯定,如果你搜索 mindsharp,你会找到它。)
需要说明的是,Ajax 已经存在了很长时间。微软从 2002 年开始很容易支持它,可能更早的 IE 5.5 发布(我不知道其他浏览器,我在做内部开发,我们当时只支持 ie)。只是没有这么叫。Ajax 一词只不过是后来有人创造的营销术语。
获取 SharePoint 2007 的最新服务包将解决您的问题(并添加对 AJAX 的全面支持)。如果没有服务包,您将需要遵循本文中概述的示例:
AjaxBasePart:Easy ASP.NET 2.0 AJAX Extensions 1.0 和 Office SharePoint Server 2007
发布此消息以便人们知道即使没有最新的服务包也有答案(secretGeek 的回复似乎说没有机会)。
从技术的角度来看,Service Pack 1没有添加对 ASP.NET AJAX 的完全支持。您仍然需要使用前面答案中提到的各种文章中描述的解决方法。
特别是,您需要确保您的 SharePoint Web 应用程序的 web.config 文件已更新以支持适当版本的 ASP.NET AJAX 扩展。
web.config 未更新的事实最有可能导致原始问题中描述的问题。