ScriptManager 控件概述

更新:2007 年 11 月

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

本主题包含以下部分:

  • 方案

  • 背景

  • 代码示例

  • 类参考

方案

必须在页上使用 ScriptManager 控件,以启用下列 ASP.NET 的 AJAX 功能:

  • Microsoft AJAX Library 的客户端脚本功能和要发送到浏览器的任何自定义脚本。有关更多信息,请参见使用 Microsoft AJAX Library 创建自定义客户端脚本

  • 部分页呈现,允许单独刷新页面上的区域而无需回发。ASP.NET UpdatePanelUpdateProgressTimer 控件需要 ScriptManager 控件才能支持部分页呈现。

  • Web 服务的 JavaScript 代理类,允许您使用客户端脚本来访问 Web 服务和 ASP.NET 页中特别标记的方法。它通过将 Web 服务和页方法作为强类型对象公开来达到此目的。

  • JavaScript 类,用于访问 ASP.NET 身份验证、配置文件和角色应用程序服务。

背景

当页包含一个或多个 UpdatePanel 控件时,ScriptManager 控件将管理浏览器中的部分页呈现。该控件与页生命周期进行交互,以更新位于 UpdatePanel 控件内的部分页。有关更多信息,请参见部分页呈现概述

ScriptManager 控件的 EnablePartialRendering 属性确定某个页是否参与部分页更新。默认情况下,EnablePartialRendering 属性为 true。因此,默认情况下,当向页添加 ScriptManager 控件时,将启用部分页呈现。有关如何将 UpdatePanel 控件与 ScriptManager 控件一起使用的信息,请参见UpdatePanel 控件简介创建具有多个 UpdatePanel 控件的简单 ASP.NET 页

处理部分页呈现错误

在部分页呈现期间,可通过执行以下操作来处理错误:

使用类型系统扩展

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

注册自定义脚本

使用 ScriptManager 控件可管理您为参与部分页更新的控件创建的资源。这些资源包括脚本、样式、隐藏字段和数组。ScriptManager 控件的 Scripts 集合中针对浏览器中可用的每个脚本包含一个 ScriptReference 对象。可以以声明方式或编程方式指定脚本。

ScriptManager 控件还公开一些注册方法,您可使用这些方法以编程方式管理客户端脚本和隐藏字段。当为支持部分页更新的脚本或隐藏字段注册时,必须调用 ScriptManager 控件的注册方法。(若要为部分页更新不需要的脚本注册,请使用 ClientScriptManager 类的方法。)

Bb398863.alert_note(zh-cn,VS.90).gif说明:

页上使用 ScriptManager 控件注册的任何脚本以及所有事件处理脚本必须位于页上的 form 元素内。否则,将不会注册或执行脚本。

有关 ClientScriptManager 控件注册方法的列表,请参见使用 Microsoft AJAX Library 创建自定义客户端脚本ClientScriptManager 类概述。

注册 Web 服务

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

可以以编程方式将 ServiceReference 对象添加到 Services 集合,以便在运行时为 Web 服务注册。有关更多信息,请参见 ASP.NET AJAX 中的 Web 服务

从客户端脚本使用身份验证、配置文件和角色服务

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

ScriptManagerProxy 类

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

代码示例

示例 AJAX 应用程序

演练:创建支持 AJAX 的网站

演练:使用客户端脚本全球化日期

使用 Microsoft AJAX Library 创建自定义客户端脚本

演练:创建和使用支持 AJAX 的 Web 服务

UpdatePanel 控件简介

UpdateProgress 控件介绍

演练:Timer 控件简介

动态分配脚本引用

创建扩展程序控件以将客户端行为与 Web 服务器控件关联

向 Web 服务器控件添加客户端功能

创建自定义 AJAX 客户端控件

创建自定义非可视客户端组件

类参考

说明

ScriptManager

一个使脚本资源可用于浏览器的服务器控件,这些资源包括 Microsoft AJAX Library 和启用部分页呈现的功能。

ScriptManagerProxy

一个服务器控件,它使嵌套的组件能够添加脚本和服务引用(如果页已包含 ScriptManager 控件)。

请参见

概念

ASP.NET 页生命周期概述

部分页呈现概述

ASP.NET AJAX 中的 Web 服务