$False$
当页面中已经有一个 ScriptManager 控件,而嵌套的或父组件需要 ScriptManager 控件的其他特性时,组件就可以包含一个 ScriptManagerProxy 控件。例如,ScriptManagerProxy 控件可以使你添加仅用于嵌套组件的脚本和服务到相应组件中。
2 添加 ScriptManager 控件
直接将 ScriptManager 控件从工具箱中拖到页面的 <form> 元素中即可得到如下的元素引用,这样,在它所有的页面就可以使用 ASP.NET AJAx 了。
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
3 客户端脚本管理示例
3.1 和 3.2 分别展示了将单个程序集中嵌入的脚本或者独立的脚本文件添加到页面中的方法,如果要同时添加多个脚本,任意按这二个方法在 <Scripts> 元素中添加多个 <asp:ScriptReference>元素即可。
3.1 添加程序集中内嵌的脚本
如下代码展示了向页面中添加嵌入到 Microsot.Web.Preview 程序集中的 PreviesScript.js 脚本文件。
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Assembly="Microsot.Web.Preview" Name="PreviesScript.js" />
</Scripts>
</asp:ScriptManager>
3.2 添加单独的脚本文件
下列代码展示了向页面中添加单独的脚本文件 ~/ScriptPath/ScriptFile.js ,可以将它替换成自己所需要的脚本文件使用。
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/ScriptPath/ScriptFile.js" />
</Scripts>
</asp:ScriptManager>
3.3 ScriptManager 的相关属性
ScriptMode:
ScriptManager 和 ScriptReference 对象都具有 ScriptMode 属性,它决定向客户端所发送的脚本的版本是 Debug 的还是 Release 的。它有四个可选的值:Inherit、Auto、Debug 和 Release。Debug 和 Release 的意义非常明确,就不再解释。Inherit 表示继承外层的设置,对于ScriptManager 来说,相当于 Auto。Auto 表示根据当前的编译模式及 Web.config 中的相关设置来自动决定脚本的版本。
ScriptPath :
用于指定页面中所有脚本块的相对的、绝对的或应用程序相关的 URL,这包括由当前 ScriptManager 实例注册的定制的或第三方脚本块。如果 Scripts 集合中的 ScriptReference 设置了 Path属性,Path 属性将覆盖 ScriptPath 的设置。如果没有设置此属性且ScriptReference 指定的是程序集的话,每次请求脚本时都将用 WebResource.axd 从程序集中解析出脚本后再发回浏览器,而设置后将直接使用 ScriptPath 下的 js 文件。
LoadScriptsBeforeUI:
当此属性为 ture 时,为引入的脚本生成的 <script>元素将出现在所有页面的 UI 标记之前,否则生成在所有 UI 标记之后。如果在加载的过程执行需要使用了引入的脚本的脚本的话,就必须设置其为 true ,否则将无法执行。
4 添加 Web 服务客户端代理
添加 Web 服务的客户端代理与添加脚本类似,如下列代码所示:
<asp:ScriptManager ID="ScriptManager1" r欢迎光临学网,点击这里查看更多文章教程 [1] [2] [3]
unat="server">
<Services>
<asp:ServiceReference Path="MyServices.asmx" />
</Services>
</asp:ScriptManager>
另外,在 Web.config 中还需要加入下列配置项:
<system.web>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpHandlers>
</system.web>
这样,在客户端脚本中就可以直接调用 Web 服务的静态方法了。
5 处理异步回发中出现的异常
在此仅介绍最简单的方式。
通常,在出现异常时,.NET 框架会重定向到一个黄.色的异常页面上,但对于用异步回发的方式处理的页面来说,这会是一场灾难,无法恢复到原页面的当前状态。
可以设置 ScriptManager 控件的 AllowCustomErrorsRedirect = "false" 来阻止出现异常时的重定向,设置 AsyncPostBackErrorMessage 属性为出现异常时显示给用户的出错信息。这样,当操作出现异常时,ScriptManager 将自动弹出包含 AsyncPostBackErrorMessage 中设置的信息的浏览器消息框
联系客服