按照
SharePoint Team Bolg
的文章,文章中建议你们将
<ScriptManager>
放置到母版页中,缘由是若是动态添加,有时并不能保证在页面生命周期中比依赖他的控件更早的添加到页面中,并且有时代码若是编写的很差会形成页面中出现多个
<ScriptManager>
实例,这对于
AJAX
技术来讲是错误的,一个页面上仅能存在一个支持
AJAX
技术的
<ScriptManager>
。因此建议将
<ScriptManager>
放置在母版页中,而不是在代码中来动态加载它。
这篇文章里面建议在页面的
<WebPartPages:SPWebPartManager id="m" runat="Server" />
标签下添加
<ScriptManager>
,我使用发布网站模板建立的网站,结果按照作以后发现是错误的,页面报错,仔细观察后发现,
SPWebPartManager
放置在了
<form>
标签以外,不是表单中的内容,我怀疑是这里的问题,便将
<asp:ScriptManager runat="server" ID="ScriptManager1"></asp:ScriptManager>
添加到了
<form>
标签以内,刷新页面,错误解决。
这里也有一个须要注意的地方,在更换母版页的时候千万记得加上
<asp:ScriptManager runat="server" ID="ScriptManager1"></asp:ScriptManager>
default.master
的
<WebPartPages:SPWebPartManager id="m" runat="Server" />
确实出如今了
<form>
标签内,
BlueBand.master
却不是。
继续说另一个问题,就是文章里面提到直接添加这个
<ScriptManager>
标签,可是实际上这是不行的,咱们须要在页面上引入对应的组件和命名空间,组件
System.Web.Extensions
已经在
web.config
中添加过了,因此这里只须要引入命名空间便可,若是不引用的话页面会识别不出
<ScriptManager>
而报错。
在页面
<html>
上面加入以下命名空间
<%@ Register TagPrefix="asp" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI" %>