快速业务通道

取消异步回发

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22

通过使用页上的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 ();

该脚本执行下列任务:

定义 Sys.Application 类的load 事件的处理程序。此处理程序随后为 PageRequestManager 类的initializeRequest 事件注册一个名为 CheckStatus 的处理程序。

定义 CheckStatus 处理程序以检查当前是否正在执行一个异步回发,并确定导致该回发的 元素的名称。

定义一个 ActivateAlertDiv 函数,该函数切换用于显示消息的<div> 元素的可见性 。

对 UpdatePanel 控件使用脚本

在此过程中,将使用您在包含 UpdatePanel 控件的页中创建的脚本。如果用户在异步回发 进行过程时单击了某个链接,则该脚本将取消回发。

创建用户可以在其中取消回发的页

创建名为 Default.aspx 的新的单文件 ASP.NET 网页并切换到“设计”视图。

在工具箱的“AJAX Extensions”选项卡中,双击 ScriptManager 控件以将其添加到页面中 。

在工具箱中,双击 UpdatePanel 控件以将其添加到页面中。

切换到“源”视图,然后将以下样式规则添加到页的<style> 元素中的 <style> 块中:

<style type="text/css">
   body {
     font-family: Tahoma;
   }
   #UpdatePanel1{
     width: 400px;
     height: 200px;
     border: solid 1px gray;
   }
   div.AlertStyle {
  

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号