我正在使用一个asp.net应用程序,其中我使用了母版页和内容页面。 在其中一个内容页面中,我正在加载一个包含更多数据的网格。在主页面中,我使用更新面板显示带有取消按钮的进度条图像。 现在,当我在内容页面上加载网格时,进度条显示取消按钮。为了清除进度,我已经编写了加载程序图像以隐藏在javascript中的取消点击按钮,这是正常工作。
但是我的进程仍在运行如何在点击取消按钮时取消此过程。 以下是单击母版页按钮时触发的方法。
private void ViewReports(string someFilterCondition)
{
//Business logic to get data from db.
}

当这种方法在业务逻辑中调用时需要更多时间。当点击取消按钮时,它隐藏了加载图像,但是用户不知道该过程是否被取消,并且在他获得加载的网格视图之后,然后知道该过程仍在运行。 如何取消当前流程?
答案 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
}
});
}
希望它可以帮助你..