如何杀死页面

时间:2017-08-03 07:33:48

标签: javascript asp.net

我正在使用一个asp.net应用程序,其中我使用了母版页和内容页面。 在其中一个内容页面中,我正在加载一个包含更多数据的网格。在主页面中,我使用更新面板显示带有取消按钮的进度条图像。 现在,当我在内容页面上加载网格时,进度条显示取消按钮。为了清除进度,我已经编写了加载程序图像以隐藏在javascript中的取消点击按钮,这是正常工作。

但是我的进程仍在运行如何在点击取消按钮时取消此过程。 以下是单击母版页按钮时触发的方法。



private void ViewReports(string someFilterCondition)
{
   //Business logic to get data from db.
}




当这种方法在业务逻辑中调用时需要更多时间。当点击取消按钮时,它隐藏了加载图像,但是用户不知道该过程是否被取消,并且在他获得加载的网格视图之后,然后知道该过程仍在运行。 如何取消当前流程?

1 个答案:

答案 0 :(得分:0)

在该页面中将static sql命令变量声明为全局(仅命令变量)。然后编写一个Web方法并取消其中的命令。然后在单击取消按钮时使用AJAX调用该Web方法。

//在页面顶部添加命名空间

using System.Web.Services;

//在该页面中全局声明此变量

 static SqlCommand command = new SqlCommand();

// C#

[WebMethod]
public static string CancelProcess()
{
   try
   {
       command.Cancel();
       return "true";
   }
   catch (Exception ex)
   {
       return ex.Message.ToString();
   }
}

//。ASPX

<asp:Button ID="BtnCancel" runat="server" Text="Cancel" OnClientClick="BtnCancel_ClientClick(); return false;" />

// JS

function BtnCancel_ClientClick() {
    $.ajax({
        type: "POST",
        url: "HomePage.aspx/CancelProcess",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
        },
        failure: function (response) {
            //  add error handling code here                   
        }
    });
}

希望它可以帮助你..