ASP.Net 中ASP:ScriptManager控件的使用

  • 概述
  • ScriptManager 控件管理用于 Microsoft ASP.NET AJAX 页面的客户端脚本。默认情况下,ScriptManager 控件将 Microsoft AJAX 库的脚本与页面注册到一起,这使脚本可以使用类型系统扩展并支持局部页面输出和 Web 服务调用。 在页面中,必须使用 ScriptManager 控件来使下列 Microsoft ASP.NET AJAX 的特性可用: Microsoft AJAX 库的客户端脚本功能,以及任何要发送到浏览器的定制脚本。 部分页面输出,这使页面中的某个区域可以不依赖于回送就可以刷新。ASP.NET AJAX 的 UpdatePanel 、UpdateProgress 和 Timer 控件需要ScriptManager 控件来支持局部输出。 Web 服务的 Javascript 代理,这使客户端脚本可以访问由强类型的 Web 服务暴露出来的方法。 Javascript 类访问 ASP.NET 认证和个性化应用服务。
  • 局部刷新
  • 当页面中有一个或多个 UpdatePanel 控件时,ScriptManager 控件将管理在浏览器中的局部页面输出。控件与页面生成周期交互来更新包含在 UpdatePanel 控件中的局部页面。

    ScriptManager 控件的 EnablePartialRendering 属性决定了页面是否可以进行局部更新。默认情况下,EnablePartialRendering 的值为 true,因此,在默认情况下添加了一个 ScriptManager 控件到页面中时,局部输出是可用的。

  • 注册 Web 服务
  • ScriptManager 控件的 Services 集合中包含了每个使用 ScriptManager 注册的 Web 服务的 ServiceReference 对象。ASP.NET AJAX 框架为 Services 集合中的每个 ServiceReference 对象生成一个客户端代理对象。代理类和它的强类型成员简化了客户端脚本使用 Web 服务。

    可以在运行时用编程的方式添加 ServiceReference 对象到 Services 集合中,以注册 Web 服务。

  • 客户端脚本管理示例
  • (1) 和 (2) 分别展示了将单个程序集中嵌入的脚本或者独立的脚本文件添加到页面中的方法,如果要同时添加多个脚本,任意按这二个方法在 元素中添加多个 元素即可。

    (1) 添加程序集中内嵌的脚本

    1 <asp:ScriptManager ID=“ScriptManager1” runat=“server”> <asp:ScriptReference Assembly=“Microsot.Web.Preview” Name=“PreviesScript.js” /> </asp:ScriptManager>
    (2) 添加单独的脚本文件

    下列代码展示了向页面中添加单独的脚本文件

    ~/ScriptPath/ScriptFile.js ,可以将它替换成自己所需要的脚本文件使用。

    1 <asp:ScriptManager ID=“ScriptManager1” runat=“server”> <asp:ScriptReference Path="~/ScriptPath/ScriptFile.js" /> </asp:ScriptManager>
    (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 时,为引入的脚本生成的

    4 添加 Web 服务客户端代理

    添加 Web 服务的客户端代理与添加脚本类似,如下列代码所示:

    1 <asp:ScriptManager ID=“ScriptManager1” runat=“server”> <asp:ServiceReference Path=“MyServices.asmx” /> </asp:ScriptManager>
    另外,在 Web.config 中还需要加入下列配置项:

    1 <system.web> </system.web>
    这样,在客户端脚本中就可以直接调用 Web 服务的静态方法了。

    5处理异步回发中出现的异常

    在此仅介绍最简单的方式。

    通常,在出现异常时,.NET 框架会重定向到一个黄色的异常页面上,但对于用异步回发的方式处理的页面来说,这会是一场灾难,无法恢复到原页面的当前状态。

    可以设置 ScriptManager 控件的 AllowCustomErrorsRedirect = “false” 来阻止出现异常时的重定向,设置 AsyncPostBackErrorMessage 属性为出现异常时显示给用户的出错信息。这样,当操作出现异常时,ScriptManager 将自动弹出包含 AsyncPostBackErrorMessage 中设置的信息的浏览器消息框。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值