1 2 3 4 5 下一页 默认情况下,当某个页同时生成多个异步回发时,最近生成的回发将优先。某些情况下,可以为特定的异步回发赋予优先级并取消其他回发。 先决条件 若要在您自己的开发环境中实现这些过程,您需要: Microsoft Visual Studio 2005 或 Microsoft Visual Web Developer 速成版。 一个支持 AJAX 的 ASP.net 网站。 创建用于为特定回发元素赋予优先级的脚本 首先,创建用于管理浏览器中的异步回发的 ECMAScript (JavaScript) 代码。 创建用于为特定回发元素赋予优先级的脚本 在 ASP.NET 网站中,添加 JScript 文件并将其命名为 PostbackPrecedence.js。 向文件中添加以下脚本: Sys.Application.add_load(ApplicationLoadHandler) function ApplicationLoadHandler(sender, args) { if (!Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()) { Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(InitializeRequest); } } var divElem = ''AlertDiv''; var messageElem = ''AlertMessage''; var exclusivePostBackElement = ''Button1''; var lastPostBackElement; function InitializeRequest(sender, args) { var prm = Sys.WebForms.PageRequestManager.getInstance(); if (prm.get_isInAsyncPostBack() && args.get_postBackElement().id === exclusivePostBackElement) { if (lastPostBackElement === exclusivePostBackElement) { args.set_cancel(true); ActivateAlertDiv(''visible'', ''A previous postback is still executing. The new postback has been canceled.''); setTimeout("ActivateAlertDiv(''hidden'','''')", 1500); } else if (lastPostBackElement !== exclusivePostBackElement) { prm.abortPostBack(); } } else if (prm.get_isInAsyncPostBack() && args.get_postBackElement().id !== exclusivePostBackElement) { if (lastPostBackElement === exclusivePostBackElement) { args.set_cancel(true); ActivateAlertDiv(''visible'', ''A previous postback is still executing. The new postback has been canceled.''); setTimeout("ActivateAlertDiv(''hidden'','''')", 1500); } } lastPostBackElement = args.get_postBackElement().id; } 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();
(责任编辑:admin) |