Welcome 微信登录

首页 / 网页编程 / ASP.NET / 取消异步回发

取消异步回发2012-04-18 MSDN 通过使用页上的NET UpdatePanel Web 服务器控件,可以在 ASP.NET 中实现异步回发。 UpdatePanel 控件不再需要在每次回发时刷新整个页面,这样将改善用户体验。在浏览器中, Microsoft AJAX Library 中的Sys.WebForms.PageRequestManager 类在客户端页生命周期中管 理事件以进行异步回发。可以通过处理 PageRequestManager 类公开的事件来自定义异步回发 出现的方式。

先决条件

若要在您自己的开发环境中实现这些过程,您需要:

Microsoft Visual Studio 2005 或 Microsoft Visual Web Developer 速成版。

一个支持 AJAX 的ASP.NET 网站。

创建取消回发的脚本

首先,创建用于管理浏览器中的异步回发的ECMAScript (JavaScript) 代码。

创建 JavaScript 代码以取消回发

在 ASP.NET 网站中,添加新的JScript 文件并将其命名为 CancelPostback.js。

向文件中添加以下脚本:

var divElem = "AlertDiv";
var messageElem = "AlertMessage";

Sys.Application.add_load(ApplicationLoadHandler)
function ApplicationLoadHandler(sender, args)
{
Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest (CheckStatus);
}
function CheckStatus(sender, args)
{
var prm = Sys.WebForms.PageRequestManager.getInstance();
if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id == "CancelRefresh") {
prm.abortPostBack();
}
else if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id == "RefreshButton") {
args.set_cancel(true);
ActivateAlertDiv("visible", "Still working on previous request.");
}
else if (!prm.get_isInAsyncPostBack() & args.get_postBackElement().id == "RefreshButton") {
ActivateAlertDiv("visible", "Retrieving headlines.");
}
}
function ActivateAlertDiv(visString, msg)
{
var adiv = $get(divElem);
var aspan = $get(messageElem);
adiv.style.visibility = visString;
aspan.innerHTML = msg;
}
if(typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded ();