取消UpdatePanel的Updating (Cancel the Updating of UpdatePanel)

本文介绍如何在ASP.NET AJAX中实现局部刷新的取消操作。通过使用JavaScript与ASP.NET AJAX控件相结合,在UpdatePanel进行长时间刷新时,用户可以通过点击取消按钮终止刷新过程。

当使用UpdatePanel进行局部刷新时,有时候会遇到过长的等待时间,这时候,如果有一个“取消”按钮就能够为人机交互提供不少便利

在下面的代码中,我们先使用Sys.WebForms.PageRequestManager.getInstance()方法获取当前的PageRequest, 如果是异步刷新的话,就终止它

 

< script  language ="javascript"  type ="text/javascript" >
<!--  
var  prm  =  Sys.WebForms.PageRequestManager.getInstance();
function  CancelAsyncPostBack() {
    
if  (prm.get_isInAsyncPostBack()) {
      prm.abortPostBack();
    }
}
//  -->
</ script >

 

接下来,使用一个HTML控件来调用这段JS方法即可完成“取消”效果,全部代码如下:

 

ContractedBlock.gif ExpandedBlockStart.gif Code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AbortPostBack.aspx.cs" Inherits="AbortPostBack" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title>Untitled Page</title>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
    
        
<asp:ScriptManager ID="ScriptManager1" runat="server">
        
</asp:ScriptManager>
         
<script language="javascript" type="text/javascript">
        
var prm = Sys.WebForms.PageRequestManager.getInstance();
        
function CancelAsyncPostBack() {
            
if (prm.get_isInAsyncPostBack()) {
              prm.abortPostBack();
            }
        }
        
</script>

        
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
            
<ContentTemplate>
                
<asp:Button ID="Button1" runat="server" Text="Update" onclick="Button1_Click" />
                
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            
</ContentTemplate>
        
</asp:UpdatePanel>
        
<asp:UpdateProgress ID="UpdateProgress1" runat="server" 
            AssociatedUpdatePanelID
="UpdatePanel1">
            
<ProgressTemplate>
                Updating.
<input ID="Button2" type="button" value="Cancel" onclick="CancelAsyncPostBack();" />
            
</ProgressTemplate>
        
</asp:UpdateProgress>
    
    
</div>
    
</form>
</body>
</html>

 

参考资料:

MSDN:http://msdn.microsoft.com/en-us/library/bb386518.aspx

 

转载于:https://www.cnblogs.com/blodfox777/archive/2008/09/15/1291145.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值