




已阅读5页,还剩139页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Microsoft AjaxMicrosoft Ajax 概述部分页呈现概述管理浏览器历史记录Ajax 脚本全球化和本地化Microsoft Ajax Library 客户端引用窗体顶端窗体底端Microsoft Ajax.NET Framework 4使用 Microsoft Ajax 功能,可以快速创建既提供丰富的用户体验又提供响应迅速的常见用户界面 (UI) 元素的网页。Microsoft Ajax 包含客户端脚本库,这些库融合了跨浏览器的 ECMAScript (JavaScript) 技术和动态 HTML (DHTML) 技术。通过使用 Microsoft Ajax,可以改进用户体验并提高 Web 应用程序的效率。Microsoft Ajax 应用程序与所有常见的现代 Web 浏览器兼容,包括 Microsoft Internet Explorer、Mozilla Firefox 和 Google Chrome。本主题包含以下各节: 增强 Web 应用程序 Microsoft Ajax 文档映射增强 Web 应用程序可以使用 Microsoft Ajax 来增强基于服务器的 ASP.NET Web 应用程序或 ASP.NET MVC 应用程序,具体做法是添加能让这些应用程序更具响应性和交互性的客户端功能。例如,可以使用 Microsoft Ajax 客户端控件来显示可折叠面板和选项卡。Microsoft Ajax 文档映射Microsoft Ajax 的文档包括概述、教程和 API 参考。MSDN 上包含本文档。下表提供有关借助该文档的帮助在 ASP.NET 中使用 Microsoft Ajax 的详细信息。使用 Microsoft Ajax Library APIMicrosoft Ajax Library 客户端引用该文档包括以下类型和成员的 API 参考: 基类型扩展 全局快捷方式 客户端命名空间 客户端类型在基于服务器的 ASP.NET Web 应用程序中使用 AjaxMicrosoft Ajax该文档讲述: Ajax 的使用概述。 Ajax 客户端生命周期事件 部分页呈现概述。 如何管理浏览器历史记录。 如何全球化和本地化脚本库。使用 Microsoft Ajax 服务器控件下列文档讲述包含 Ajax 功能的 ASP.NET Web 服务器控件: UpdatePanel 控件概述 UpdateProgress 控件概述 Timer 控件概述 ScriptManager 控件概述使用 Microsoft Ajax Web 服务器控件 API本文档包括 .NET Framework 中以下类型的 API 参考: AjaxFrameworkMode CompositeScriptReference CompositeScriptReferenceEventArgs HistoryEventArgs ScriptManager ScriptManagerProxy ScriptReference ScriptReferenceBase ScriptReferenceCollection ScriptResourceDefinition ScriptResourceMapping ServiceReference Timer UpdatePanel UpdatePanelControlTrigger UpdatePanelRenderMode UpdatePanelTrigger UpdatePanelTriggerCollection UpdatePanelUpdateMode UpdateProgress扩展 Microsoft Ajax该文档讲述如何扩展 Microsoft Ajax,包含以下主题: 创建自定义非可视客户端组件 创建自定义 AJAX 客户端控件 创建扩展程序控件以将客户端行为与 Web 服务器控件关联 向 Web 服务器控件添加客户端功能 演练:向 MVC 项目添加 ASP.NET AJAX 脚本请参见概念ASP.NET 客户端脚本ASP.NET 概述向 ASP.NET 控件添加 Ajax 功能Microsoft Ajax 概述.NET Framework 4 Visual Studio 2008当您生成 Ajax 应用程序时,您将为用户提供更丰富、反应更迅速的用户体验。可以使用 Ajax 功能来增强基于服务器的 ASP.NET Web 窗体应用程序,方法是使用服务器端 ASP.NET 控件(例如 UpdatePanel 控件)。注意如果要不使用服务器控件创建 Ajax 客户端交互性,请使用 jQuery。在 Visual Studio 中,当您使用“ASP.NET 网站”项目模板、“ASP.NET Web 应用程序”项目模板和“ASP.NET MVC 2 Web 应用程序”项目模板创建项目时,jQuery 库包括在应用程序中。当您使用 jQuery 进行开发时,Visual Studio 提供 IntelliSense,Microsoft 内容传递网络 (CDN) 提供可下载版本的 jQuery 库以实现高效部署。有关更多信息,请参见 jQuery Web site(jQuery 网站)。本主题侧重于增强基于服务器的 ASP.NET Web 窗体应用程序。为何使用 Microsoft Ajax 功能?使用 Ajax 功能的 Web 窗体应用程序提供以下功能: 熟悉的交互式 UI 元素,如进度指示器、工具提示和弹出窗口。 Web 窗体应用程序效率得到增强,因为网页的大部分处理工作是在浏览器中执行的。 部分页更新,只刷新已发生更改的网页部分。 客户端与用于 Forms 身份验证的 ASP.NET 应用程序服务、角色和用户配置文件的集成。 自动生成的代理类,可简化从客户端脚本调用 Web 服务方法的过程。 可让您自定义服务器控件以包含客户端功能。 对大部分流行浏览器的支持,其中包括 Microsoft Internet Explorer、Mozilla Firefox 和 Apple Safari。Microsoft Ajax 应用程序的体系结构Microsoft Ajax Web 应用程序由仅客户端解决方案或客户端与服务器解决方案组成。仅客户端解决方案使用 Microsoft Ajax Library,但不使用任何 ASP.NET 服务器控件。例如,HTML 可以包含引用 Microsoft Ajax Library .js 文件的 script 元素。Microsoft Ajax Library 允许 Ajax 应用程序在客户端上执行所有处理。客户端与服务器解决方案既使用 Microsoft Ajax Library,又使用 ASP.NET 服务器控件。下图显示 .NET Framework 4 附带的客户端脚本库和服务器组件中包含的功能。Microsoft Ajax 客户端与服务器结构此图显示了基于客户端的 Microsoft Ajax Library 的功能,其中包含对创建客户端组件、浏览器兼容性以及网络和核心服务的支持。此图还显示了基于服务器的 Microsoft Ajax 特性的功能,其中包括脚本支持、Web 服务、应用程序服务和服务器控件。以下各节对此图进行了更详细的描述。Microsoft Ajax 客户端体系结构客户端结构包括用于组件支持、浏览器兼容性、网络和核心服务的库。组件客户端组件在服务器中启用丰富的行为,而不需要回发。这些组件分为三个类别: 组件,这些组件是封装代码的非可视对象。 行为,这些行为可扩展现有 DOM 元素的行为。 控件,这些控件表示具有自定义行为的新的 DOM 元素。使用的组件类型取决于所需的客户端行为的类型。例如,可使用附加到现有文本框的行为创建该文本框的水印。有关更多信息,请参见创建客户端组件和控件。浏览器兼容性浏览器兼容性层可为最常用的浏览器(包括 Microsoft Internet Explorer、Mozilla Firefox 和 Apple Safari)提供 Microsoft Ajax 脚本兼容性。这将使您能够针对各种受支持的服务器编写相同的脚本。有关更多信息,请参见支持 Ajax 的 ASP.NET 页面的浏览器安全设置。网络网络层将处理浏览器中的脚本与基于 Web 的服务和应用程序之间的通信,还将管理异步远程方法调用。在许多情况下(如使用 UpdatePanel 控件的部分页更新),将自动使用网络层而无需编写任何代码。网络层还提供对在客户端脚本中访问基于服务器的 Forms 身份验证、角色信息和配置文件信息的支持。只要应用程序具有对 Microsoft AJAX Library 的访问权,在不是使用 ASP.NET 创建的 Web 应用程序中也可获得此支持。核心服务ASP.NET 中的 Ajax 客户端脚本库由 JavaScript (.js) 文件组成,这些文件提供用于面向对象的开发的功能。包含在 Microsoft Ajax 客户端脚本库中的面向对象的功能在客户端脚本中启用高级别的一致性和模块化。下面的核心服务是客户端结构的一部分: 针对 JavaScript 的面向对象的扩展,如类、命名空间、事件处理程序、继承、数据类型和对象序列化。 一个基类库,其中包含字符串生成器和扩展的错误处理这样的组件。 对 JavaScript 库的支持,这些库会嵌入到程序集中或作为单独的 JavaScript (.js) 文件提供。在程序集中嵌入 JavaScript 库可以使部署应用程序更容易,并有助于解决版本问题。 有关更多信息,请参见使用 Microsoft Ajax Library 创建自定义客户端脚本。调试和错误处理核心服务包括 Sys.Debug 类,此类提供用于在网页的末尾以可读形式显示对象的方法。该类还显示跟踪消息,使您能够断言,并让您可以中断至启动调试器。一个扩展的 Error 对象 API 将提供有用的异常详细信息,并支持发布和调试模式。有关更多信息,请参见 调试和跟踪 Ajax 应用程序概述。全球化ASP.NET 中的 Ajax 服务器与客户端体系结构提供用于本地化和全球化客户端脚本的模型。这将使您能够设计使用单个代码库为多个区域设置(语言和区域性)提供 UI 的应用程序。例如,Ajax 体系结构使 JavaScript 代码能够根据用户浏览器的区域设置自动为 Date 或 Number 对象设置格式,而无需回发到服务器。有关更多信息,请参见演练:使用客户端脚本全球化日期。Ajax 服务器体系结构支持 Ajax 开发的服务器模块由管理应用程序的 UI 和流的 ASP.NET Web 服务器控件和组件组成。这些服务器模块还管理序列化、验证和控件扩展性。还有一些 ASP.NET Web 服务使您能够允许访问用于 Forms 身份验证、角色和用户配置文件的 ASP.NET 应用程序服务。脚本支持ASP.NET 中的 Ajax 功能通常是使用严格在客户端上执行处理的客户端脚本库。还可以通过使用支持从服务器发送到客户端的脚本的服务器控件来实现 Ajax 功能。还可以为 ASP.NET 应用程序创建自定义客户端脚本。在这种情况下,还可以使用 Ajax 功能来管理作为静态 .js 文件(磁盘上)或作为资源嵌入到程序集中的 .js 文件的自定义脚本。Ajax 功能包括一个用于发布模式和调试模式的模型。发布模式提供错误检查和异常处理,并针对性能进行了优化,同时使用最少量的脚本。调试模式提供更可靠的调试功能,如类型和参数检查。当应用程序处于调试模式时,ASP.NET 将运行调试版本。这将使您能够在调试脚本中引发异常,同时保持最少数量的发布代码。对 ASP.NET 中的 Ajax 的脚本支持可用于提供两个重要功能: Microsoft AJAX Library,这是一个类型系统和一组 JavaScript 扩展,可提供命名空间、继承、接口、枚举、反射和其他功能。有关更多信息,请参见使用 Microsoft Ajax Library 创建自定义客户端脚本。 部分页呈现,此功能可通过使用异步回发来更新页面区域。有关更多信息,请参见部分页呈现概述。本地化Microsoft Ajax 体系结构以 ASP.NET 2.0 本地化模型为基础进行构建。它提供对嵌入到程序集中的或在磁盘上提供的本地化 .js 文件的其他支持。ASP.NET 可以自动针对特定语言和区域提供本地化的客户端脚本和资源。有关更多信息,请参见下列主题: 组件库资源本地化概述 演练:为 JavaScript 文件嵌入本地化资源 Web 服务借助 ASP.NET 网页中的 Ajax 功能,可以使用客户端脚本来调用 ASP.NET Web 服务 (.asmx) 和 Windows Communication Foundation (WCF) 服务 (.svc)。请求的脚本引用将自动添加到页,随后它们会自动生成 Web 服务代理类,您可以从客户端脚本使用这些类来调用 Web 服务。也可以访问 ASP.NET Web 服务,而无需使用 Microsoft Ajax 服务器控件(例如,如果使用其他 Web 开发环境)。为此,可通过手动在页中包括对 Microsoft AJAX Library、脚本文件和 Web 服务本身的引用。在运行时,ASP.NET 将生成可用于调用这些服务的代理类。有关更多信息,请参见 ASP.NET AJAX and Web Services。应用程序服务ASP.NET 中的应用程序服务是基于 ASP.NET Forms 身份验证、角色和用户配置文件的内置 Web 服务。这些服务可由支持 Ajax 的网页中的客户端脚本、Windows 客户端应用程序或 WCF 兼容的客户端调用。有关信息和示例,请参见ASP.NET Web 服务.服务器控件Ajax 服务器控件由服务器和客户端代码组成,这些代码集成在一起可生成丰富的客户端行为。当您将支持 Ajax 的控件添加到 ASP.NET 网页上时,该页会自动将支持的客户端脚本发送到浏览器以获取 Ajax 功能。可以提供其他的客户端代码来自定义控件的功能,但这不是必需的。以下列表描述最常使用的 Ajax 服务器控件。控件说明ScriptManager管理客户端组件、部分页呈现、本地化、全球化和自定义用户脚本的脚本资源。若要使用 UpdatePanel、UpdateProgress 和 Timer 控件,则需要 ScriptManager 控件。但在创建仅客户端解决方案时,不需要 ScriptManager 控件。UpdatePanel使您能够刷新页的选定部分,而不是使用同步回发来刷新整个页面。UpdateProgress提供有关 UpdatePanel 控件中的部分页更新的状态信息。Timer按定义的时间间隔执行回发。可以使用 Timer 控件来发送整个页,或将其与 UpdatePanel 控件一起使用以按定义的时间间隔执行部分页更新。还可以创建包含 Ajax 客户端行为的自定义 ASP.NET 服务器控件。用于增强其他 ASP.NET Web 控件功能的自定义控件称为“扩展程序控件”。有关更多信息,请参见 向 ASP.NET 控件添加 Ajax 功能和 Microsoft Ajax 扩展程序控件概述。Ajax 控件工具包Ajax Control Toolkit(Ajax 控件工具包)包含可用于生成高响应性和交互性的启用了 Ajax 的 Web 应用程序的控件。这些控件不需要了解 JavaScript 或 Ajax。它们是使用 ASP.NET Web 窗体应用程序开发人员所熟悉的概念设计的。使用 Ajax 控件工具包,可以通过将控件从 Visual Studio“工具箱”拖动到页上来生成启用了 Ajax 的 ASP.NET Web 窗体应用程序和 ASP.NET MVC Web 应用程序。Ajax 控件工具包是属于 CodePlex Foundation 一部分的开放源代码项目。有关更多信息,请参见 CodePlex 网站上的 Ajax Control Toolkit(Ajax 控件工具包)。注意如果要不使用服务器控件创建 Ajax 客户端交互性,请使用 jQuery。有关更多信息,请参见 jQuery Web site(jQuery 网站)。请参见概念支持 Ajax 的 ASP.NET 页面的浏览器安全设置Ajax 客户端生命周期事件其他资源Microsoft AjaxAjax 客户端生命周期事件.NET Framework 4基于 WebForms 且使用 Microsoft Ajax 的页不仅引发与 ASP.NET 4 网页一样的服务器生命周期事件,还引发客户端生命周期事件。这些客户端事件可让您自定义回发和异步回发(部分页更新)的用户界面,还可帮助您在浏览器中页的生存期内,管理自定义脚本组件。这些客户端事件由 Microsoft AJAX Library 中的类引发。当页包含 Microsoft Ajax 服务器控件时,这些类将自动实例化。客户端类提供了一些 API,使您能够绑定到事件并提供这些事件的处理程序。由于 Microsoft AJAX Library 是独立于浏览器的,因此,为处理程序编写的代码在所有支持的浏览器中的工作方式相同。初始请求(GET 请求)和同步回发的关键事件是 Application 实例的 load 事件。当 load 事件处理程序中的脚本运行时,所有脚本和组件都已加载并可用。当启用 UpdatePanel 控件的部分页呈现时,关键客户端事件是 PageRequestManager 类的事件。这些事件为您提供了处理许多常见情况的能力,其中包括取消回发的能力、赋予一个回发优于另一个回发的优先级别的能力以及在刷新 UpdatePanel 控件的内容时对这些控件进行动画处理的能力。无论您是在创建页还是在编写组件,客户端事件都很有用。如果您是一名网页开发人员,则可以提供一个在浏览器中加载和卸载页时将调用的自定义脚本。有关服务器生命周期事件的更多信息,请参见 ASP.NET 页生命周期概述。客户端类在基于 WebForms 的页的客户端生命周期内,引发事件的两个主要的 Microsoft AJAX Library 类分别是 Application 和 PageRequestManager 类。当页包含 ScriptManager 控件时,将在浏览器中实例化 Application 类。虽然 Application 类与 Page 服务器控件(派生自 Control 类)类似,但它提供了用于引发服务器事件的附加功能。同样,Application 类派生自 Sys.Component 类,但它会引发您可处理的客户端生命周期事件。如果页包含一个 ScriptManager 控件和一个或多个 UpdatePanel 控件,则该页可执行部分页更新(如果浏览器支持并已启用部分页呈现)。在此情况下,浏览器中将自动获得 PageRequestManager 类的实例。PageRequestManager 类将引发特定于异步回发的客户端事件。有关部分页呈现的详细信息,请参见部分页呈现概述。添加客户端事件的处理程序若要添加或移除由 Application 和 PageRequestManager 类引发的事件的处理程序,请使用这些类的 add_事件名 和 remove_事件名 方法。下面的示例演示如何将名为 MyLoad 的处理程序添加到 Application 对象的 init 事件。JavaScript复制Sys.Application.add_init(MyInit);function MyInit(sender) Sys.Appplication.remove_init(MyInit);注意本示例仅演示 add_事件名 和 remove_事件名 方法的语法。本主题的后面部分提供了有关使用特定事件可进行的操作的详细信息。处理应用程序加载和卸载事件若要处理 Application 对象的 load 和 unload 事件,不必将处理程序显式绑定到事件,可以改为创建使用保留名称 pageLoad 和 pageUnload 的函数。下面的示例演示如何使用此方法为 Application 对象的 load 事件添加处理程序。JavaScript复制function pageLoad(sender, args) 其他客户端类的事件本主题仅描述由 Application 和 PageRequestManager 类引发的事件。Microsoft AJAX Library 还包含用于为 DOM 元素事件添加、清除和移除处理程序的类。这些类包括: Sys.UI.DomEvent.addHandler 方法或快捷方式 $addHandler。 Sys.UI.DomEvent.clearHandlers 方法或快捷方式 $clearHandlers。 Sys.UI.DomEvent.removeHandler 方法或快捷方式 $removeHandler。本主题中不讨论由 DOM 元素引发的事件。Application 和 PageRequestManager 类的客户端事件下面列出了 Application 和 PageRequestManager 类的客户端事件,可以在支持 Ajax 的 ASP.NET 网页中处理这些事件。本主题的后面部分将描述引发事件的顺序。事件说明Sys.Application.init 事件在已加载所有脚本之后并在创建任何对象之前引发。如果正在编写一个组件,则 init 事件为您在页生命周期中将您的组件添加到页中提供了一个机会。这样,其他组件或脚本以后就可以在页生命周期中使用所添加的组件了。如果您是一名网页开发人员,则在大多数情况下,应使用 load 事件而不是 init 事件。当首次呈现页时,仅引发一次 init 事件。后续的部分页更新不会引发 init 事件。Sys.Application.load 事件在已加载所有脚本且应用程序中使用 $create 创建的所有对象已初始化之后引发。对于所有针对服务器的回发(包括异步回发)引发 load 事件。如果您是一名网页开发人员,则可以创建一个名为 pageLoad 的函数以自动提供 load 事件的处理程序。在已由 add_load 方法添加到 load 事件的任何处理程序之后,调用 pageLoad 处理程序。load 事件将采用 eventargs 参数,该参数是一个 Sys.ApplicationLoadEventArgs 对象。可以使用事件参数来确定是否因部分页更新而刷新页以及自引发上一个 load 事件之后创建了哪些组件。Sys.Application.unload 事件在释放所有对象之前和浏览器窗口的 window.unload 事件发生之前引发。如果您是一名网页开发人员,则可以创建一个名为 pageUnload 的函数以自动提供 unload 事件的处理程序。pageUnload 事件刚好在从浏览器中卸载页之前进行调用。在此事件过程中,应释放代码所占有的任何资源。Sys.CpertyChanged 事件在组件的属性发生更改时可能引发。仅当组件开发人员在属性 Set 访问器中调用 Sys.Component.raisePropertyChange 方法时引发此事件。有关更多信息,请参见定义自定义组件属性和引发 PropertyChanged 事件。propertyChanged 事件将采用 eventargs 参数,该参数是一个 Sys.applicationLoadEventArgs 对象。Sys.Component.disposing 事件释放 Application 实例时引发。Sys.WebForms.PageRequestManager initializeRequest 事件在异步请求开始之前引发。可以使用此事件来取消回发,如为另一个异步回发赋予优先权。initializeRequest 事件将采用 eventargs 参数,该参数是一个 Sys.WebForms.InitializeRequestEventArgs 对象。此对象可提供导致回发的元素和基础请求对象。InitializeRequestEventArgs 还公开 cancel 属性。如果将 cancel 设置为 true,则会取消新的回发。Sys.WebForms.PageRequestManager beginRequest 事件在启动一个异步回发并将其发送到服务器之前引发。如果有一个回发已在处理,则将停止该回发(通过使用 abortPostBack 方法)。可以使用此事件来设置请求标头,或开始页上的动画以指示正在对请求进行处理。beginRequest 事件将采用 eventargs 参数,该参数是一个 Sys.WebForms.BeginRequestEventArgs 对象。此对象可提供导致回发的元素和基础请求对象。Sys.WebForms.PageRequestManager pageLoading 事件在从服务器收到对异步回发的响应之后但在页上的任何内容更新之前引发。可以使用此事件为更新的内容提供自定义转换效果。pageLoading 事件将采用 eventargs 参数,该参数是一个 Sys.WebForms.PageLoadingEventArgs 对象。此对象可提供一些与因最新的异步回发而要删除和更新的面板有关的信息。Sys.WebForms.PageRequestManager pageLoaded 事件在因同步回发或异步回发而刷新页上的所有内容之后引发。对于同步回发,仅可以创建面板;而对于异步回发,则可以创建和更新面板。可以使用此事件管理针对更新内容的自定义转换效果。pageLoaded 事件将采用 eventargs 参数,该参数是一个 Sys.WebForms.PageLoadedEventArgs 对象。此对象可提供一些与在最新的回发中更新和创建的面板有关的信息。Sys.WebForms.PageRequestManager endRequest 事件在处理异步回发的响应并更新页之后或在响应的处理过程中(如果存在错误)引发。如果出错,则不更新页。使用此事件可为用户提供自定义的错误通知或记录错误。endRequest 事件将采用 eventargs 参数,该参数是一个 Sys.WebForms.EndRequestEventArgs 对象。此对象可提供一些与发生的错误以及是否已处理错误有关的信息,还可提供响应对象。事件顺序示例下面的示例演示在包含两个 UpdatePanel 控件(一个控件嵌套在另一个控件中)的页上引发的客户端事件。您将发现单击父面板中的按钮与单击嵌套的面板中的按钮之间的区别。父面板中的按钮会导致更新父面板,并导致删除和重新创建嵌套的面板。嵌套的面板中的按钮仅会导致更新嵌套的面板。将下面的代码添加到网页中:C#VB复制 Client Event Example #OuterPanel width: 600px; height: 200px; border: 2px solid blue; #NestedPanel width: 596px; height: 60px; border: 2px solid green; margin-left:5 px; margin-right:5px; margin-bottom:5px; Postbacks from inside the outer panel and inner panel are asynchronous postbacks. PRM = Sys.WebForms.PageRequestManager. APP = Sys.Application. Last updated on Last updated on Test Window Unload 将下面的代码添加到名为 ClientEventTest.js 的 JavaScript 文件中。None复制/ Hook up Application event handlers.var app = Sys.Application;app.add_load(ApplicationLoad);app.add_init(ApplicationInit);app.add_disposing(ApplicationDisposing);app.add_unload(ApplicationUnload);/ Application event handlers for component developers.function ApplicationInit(sender) var prm = Sys.WebForms.PageRequestManager.getInstance(); if (!prm.get_isInAsyncPostBack() prm.add_initializeRequest(InitializeRequest); prm.add_beginRequest(BeginRequest); prm.add_pageLoading(PageLoading); prm.add_pageLoaded(PageLoaded); prm.add_endRequest(EndRequest); $get(ClientEvents).innerHTML += APP: Application init. ;function ApplicationLoad(sender, args) $get(ClientEvents).innerHTML += APP: Application load. ; $get(ClientEvents).innerHTML += (isPartialLoad = + args.get_isPartialLoad() + );function ApplicationUnload(sender) alert(APP: Application unload.);function ApplicationDisposing(sender) $get(ClientEvents).innerHTML += APP: Application disposing. ;/ Application event handlers for page developers.function pageLoad() $get(ClientEvents).innerHTML += PAGE: Load.;function pageUnload() alert(Page: Page unload.);/ PageRequestManager event handlers.function InitializeRequest(sender, args) $get(ClientEvents).innerHTML += ; $get(ClientEvents).innerHTML += PRM: Initializing async request.; function BeginRequest(sender, args) $get(ClientEvents).innerHTML += PRM: Begin processing async request.;function PageLoading(sender, args) $get(ClientEvents).innerHTML += PRM: Loading results of async request.; var updatedPanels = printArray(PanelsUpdating, args.get_panelsUpdating(); var deletedPanels = printArray(PanelsDeleting, args.get_panelsDeleting(); var message = - + updatedPanels + - + deletedPanels + ; document.getElementById(ClientEvents).innerHTML += message;function PageLoaded(sender, args) $get(ClientEvents).innerHTML += PRM: Finished loading results of async request.; var updatedPanels = printArray(PanelsUpdated, args.get_panelsUpdated(); var createdPanels = printArray(PaneslCreated, args.get_panelsCreated(); var message = - + updatedPanels + - + createdPanels + ; document.getElementById(ClientEvents).innerHTML += message;function EndRequest(sender, args) $get(ClientEvents).innerHTML += PRM: End of async request.;/ Helper functions.function Clear() $get(ClientEvents).innerHTML = ;function printArray(name, arr) var panels = name + = + arr.length; if(arr.length 0) panels += (; for(var i = 0; i arr.length; i+) panels += arri.id + ,; panels = panels.substring(0, panels.length - 1); panels += ); return panels;常见情况的事件顺序事件的顺序与页上使用的控件以及发出请求的类型(初始请求、回发或异步回发)有关。本节描述几种常见情况的事件的顺序。初始请求在页的初始请求过程中,将引发有限数量的客户端事件。假定初始请求的以下情况: 页包含 ScriptManager 控件,且该控件的 SupportsPartialRendering 和 EnablePartialRendering 属性均为 true。 该请求为 GET 请求。 成功返回来自服务器的响应。以下客户端事件按此顺序发生:1. 将初始请求发送到服务器。2. 客户端接收响应。3. Application 实例引发 init 事件。4. Application 实例引发 load 事件。在浏览器中的页的生存期内,Application 实例的 init 事件仅引发一次。对于后续异步回发,不再引发此事件。在初始请求期间,不引发任何 PageRequestManager 事件。异步回发异步回发可将一些页数据发送到服务器、接收响应并更新页的一部分。假定异步回发的以下情况: 页包含 ScriptManager 控件,且该控件的 SupportsPartialRendering 和 EnablePartialRendering 属性均为 true。 页包含 UpdatePanel 控件,且该控件的 ChildrenAsTriggers 属性为 true。 UpdatePanel 控件内的按钮启动异步回发。 成功返回来自服务器的响应。以下客户端事件按此顺序发生:1. 单击 UpdatePanel 内的按钮,这将启动异步回发。2. PageRequestManager 实例引发 initializeRequest 事件。3. PageRequestManager 实例引发 beginRequest 事件。4. 将请求发送到服务器。5. 客户端接收响应。6. PageRequestManager 实例引发 pageLoading 事件。7. PageRequestManager 实例引发 pageLoaded 事件。8. Application 实例引发 load 事件。9. PageRequestManager 实例引发 endRequest 事件。有关更多信息,请参见使用局部页面呈现事件。请注意,Applicati
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB5114-T 73-2024 东坡菜 东坡泡菜鸡火锅烹饪工艺技术规范
- 在线教学平台中的实践创新和师生互动机制研究
- 创新教育政策国际与本土的实践探索
- 教育技术在促进学生综合素质发展中的作用
- 智慧城市公共服务项目的财务管理实践案例分享
- 黎明职业大学《企业经济活动分析》2023-2024学年第二学期期末试卷
- 天府新区信息职业学院《茶艺、茶道》2023-2024学年第二学期期末试卷
- 商丘职业技术学院《生物医药伦理与药事管理》2023-2024学年第二学期期末试卷
- 焦作大学《中学语文教师技能训练》2023-2024学年第二学期期末试卷
- 内蒙古农业大学《口腔门诊经营管理》2023-2024学年第二学期期末试卷
- 《祝福》课件 统编版高中语文必修下册
- 《技术成果投资入股个人所得税递延纳税备案表》
- MOOC 油气田应用化学-西南石油大学 中国大学慕课答案
- 《HSK标准教程4上》第4课自用课件
- 七年级数学下册期中测试卷(完整)
- 2023年温州中学自主招生理综模拟试题
- GB/T 43731-2024生物样本库中生物样本处理方法的确认和验证通用要求
- 广州市律师协会申请律师执业人员面试考核参考题库
- 数据治理培训资料
- 裂解裂化工艺培训课件
- 夜市防恐防暴应急预案
评论
0/150
提交评论