Asp.net中的ScriptManager

 ScriptManager 控件管理支持 AJAX 的 ASP.NET 网页的客户端脚本。默认情况下,ScriptManager 控件会向页面注册 Microsoft AJAX Library 的脚本。这将使客户端脚本能够使用类型系统扩展并支持部分页呈现和 Web 服务调用这样的功能。
 

必须在页上使用 ScriptManager 控件,以启用下列 ASP.NET 的 AJAX 功能:
·Microsoft AJAX Library 的客户端脚本功能和要发送到浏览器的任何自定义脚本。
·部分页呈现,允许单独刷新页面上的区域而无需回发。ASP.NET UpdatePanel、UpdateProgress 和 Timer 控件需要 ScriptManager 控件才能支持部分页呈现。
·Web 服务的 JavaScript 代理类,允许您使用客户端脚本来访问 Web 服务和 ASP.NET 页中特别标记的方法。它通过将 Web 服务和页方法作为强类型对象公开来达到此目的。
·JavaScript 类,用于访问 ASP.NET 身份验证、配置文件和角色应用程序服务。
 

当页包含一个或多个 UpdatePanel 控件时,ScriptManager 控件将管理浏览器中的部分页呈现。该控件与页生命周期进行交互,以更新位于 UpdatePanel 控件内的部分页。
ScriptManager 控件的 EnablePartialRendering 属性确定某个页是否参与部分页更新。默认情况下,EnablePartialRendering 属性为 true。因此,默认情况下,当向页添加 ScriptManager 控件时,将启用部分页呈现。
 

1、处理部分页呈现错误
在部分页呈现期间,可通过执行以下操作来处理错误:
·需要设置 AllowCustomErrorsRedirect 属性。当异步回发过程中发生错误时,此属性将决定如何使用 Web.config 文件的自定义错误部分。
·处理 ScriptManager 控件的 AsyncPostBackError 事件,该事件在异步回发期间出现页错误时引发。
·设置 AsyncPostBackErrorMessage 属性,该属性是发送到浏览器的错误消息。
 

2、使用类型系统扩展
Microsoft AJAX Library 可向 JavaScript 添加类型系统扩展,以提供命名空间、继承、接口、枚举、映射以及字符串和数组的 Helper 函数。这些扩展可以在客户端脚本中提供与 .NET Framework 的功能类似的功能。利用这些扩展,可按一种结构化方式编写支持 AJAX 的 ASP.NET 应用程序,这不仅能提高可维护性,还使添加功能和功能分层的操作更容易。向 ASP.NET 网页添加 ScriptManager 控件自动包括类型系统扩展,使您能够在客户端脚本中使用该库。
 

3、注册自定义脚本
使用 ScriptManager 控件可管理您为参与部分页更新的控件创建的资源。这些资源包括脚本、样式、隐藏字段和数组。ScriptManager 控件的 Scripts 集合中针对浏览器中可用的每个脚本包含一个 ScriptReference 对象。可以以声明方式或编程方式指定脚本。
ScriptManager 控件还公开一些注册方法,您可使用这些方法以编程方式管理客户端脚本和隐藏字段。当为支持部分页更新的脚本或隐藏字段注册时,必须调用 ScriptManager 控件的注册方法。(若要为部分页更新不需要的脚本注册,请使用 ClientScriptManager 类的方法。)
说明: 页上使用 ScriptManager 控件注册的任何脚本以及所有事件处理脚本必须位于页上的 form 元素内。否则,将不会注册或执行脚本。
 

4、注册 Web 服务
若要注册想要从支持 AJAX 的 ASP.NET 页调用的 Web 服务,请通过将该 Web 服务添加到 ScriptManager 控件的 Services 集合来注册它。ASP.NET AJAX Framework 为 Services 集合中的每个 ServiceReference 对象生成一个客户端代理对象。这些代理类及其强类型成员将简化从客户端脚本使用 Web 服务的过程。
可以以编程方式将 ServiceReference 对象添加到 Services 集合,以便在运行时为 Web 服务注册。
 

5、从客户端脚本使用身份验证、配置文件和角色服务
Microsoft AJAX Library 包含用于从 JavaScript 直接调用 ASP.NET 2.0 Forms 身份验证、配置文件和角色应用程序服务的代理类。如果要使用自定义身份验证服务,则可通过使用 ScriptManager 控件来为该服务注册。有关更多信息,请参见将 Forms 身份验证用于 ASP.NET AJAX、将配置文件信息与 ASP.NET AJAX 一起使用和通过 ASP.NET AJAX 使用角色信息。
 

6、ScriptManagerProxy 类
只能向页添加 ScriptManager 控件的一个实例。该页可以直接包含该控件,也可以将其间接包含在嵌套的组件中,如用户控件、母版页的内容页或嵌套的母版页。如果页已包含 ScriptManager 控件,但嵌套的组件或父组件需要 ScriptManager 控件的其他功能,则该组件可以包含 ScriptManagerProxy 控件。例如,ScriptManagerProxy 控件使您能够添加特定于嵌套的组件的脚本和服务。


转载:http://blog.csdn.net/dodream/archive/2009/12/22/5058142.aspx

你可能感兴趣的:(Asp.net中的ScriptManager)