取消一个正在执行的异步回发

javascript代码:
      // pageLoad函数在成功更新后隐藏提示面板
      function  pageLoad() 
      
{
      showmessage(
"false","");
      }

    
// 设定当引发initializeRequest事件时便执行事件处理函数CheckStatus
    Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckStatus);
     
function  CheckStatus(sender,args)
     
{
     
//取得PageRequestManager类的实例
     var prm=Sys.WebForms.PageRequestManager.getInstance();
     
//判断是否在进行异步回发且点击了“取消”按钮,就调用PageRequestManager的abortPostBack方法取消异步回发
     if(prm.get_isInAsyncPostBack() & args.get_postBackElement().id=='LinkButton1')
     
{
        prm.abortPostBack();
        
//隐藏提示面板
        showmessage("false","");
     }

     
//判断是否在进行异步回发并且又单击了发送异步回发按钮此时取消新的异步回送并显示正在处理先前的请求
     else if(prm.get_isInAsyncPostBack() & args.get_postBackElement().id=='Button1')
     
{
     args.set_cancel(
true);
     showmessage(
"true","仍在处理先前的请求");
     }

     
//提示正在取得数据
     else if(!prm.get_isInAsyncPostBack() & args.get_postBackElement().id=='Button1')
     
{
       showmessage(
"true","正在取得数据");
     }

     }

     
// 显示与隐藏提示信息
      function  showmessage(visiable,msg)
     
{
     
if(visiable=="true")
     

       
var loading=$get("loading");
       loading.style.visibility
='visible';
       $get(
"message").innerHTML=msg;
     }

     
if(visiable=="false")
     

       
var loading=$get("loading");
       loading.style.visibility
='hidden';
       $get(
"message").innerHTML=msg;
     }

     }

     
if  ( typeof (Sys)  !==   ' undefined ' ) Sys.Application.notifyScriptLoaded();

前台页面主要代码:
< body >
    
< form  id ="form1"  runat ="server" >
    
< div  align ="center"    >
        
< asp:ScriptManager  ID ="ScriptManager1"  runat ="server"   >
            
< Scripts >
                
<asp:ScriptReference Path="ClientControl.js" />
            
</ Scripts >
        
</ asp:ScriptManager >
        
< asp:Button  ID ="Button1"  runat ="server"  Text ="获取时间"  onclick ="Button1_Click"   />
        
< br  />
        
< div  id ="loading"  align ="left"  style =" visibility: hidden;" >
            
< img  alt =""  src ="progressbar_long.gif"    />< span  id ="message" ></ span >
            
< asp:LinkButton  ID ="LinkButton1"  runat ="server" > 取消 </ asp:LinkButton >
        
</ div >
        
< asp:UpdatePanel  ID ="UpdatePanel1"  runat ="server"  UpdateMode ="Conditional" >
            
< ContentTemplate >
     
                
< span > 当前时间: </ span >< asp:Label  ID ="Label1"  runat ="server"  Text ="" ></ asp:Label >
     
            
</ ContentTemplate >
            
< Triggers >
                
< asp:AsyncPostBackTrigger  ControlID ="Button1"  EventName ="Click" >
                
</ asp:AsyncPostBackTrigger >
                
< asp:AsyncPostBackTrigger  ControlID ="LinkButton1"  EventName ="Click"   />
            
</ Triggers >
        
</ asp:UpdatePanel >
    
</ div >
    
</ form >
</ body >

Button1_Click事件代码:
     protected   void  Button1_Click( object  sender, EventArgs e)
    
{
        
//刻意暂停6S
        System.Threading.Thread.Sleep(6000);
        Label1.Text 
= DateTime.Now.ToString();
    }

转载于:https://www.cnblogs.com/dushouke/archive/2008/06/03/1212757.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值