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