2017-08-03 60 views
1

我正在使用一個asp.net應用程序,其中我使用了母版頁和內容頁。 在其中一個內容頁面中,我正在加載一個包含更多數據的網格,而在母版頁中,我使用更新面板來顯示帶取消按鈕的進度條圖像。 現在,當我在內容頁面上加載網格時,進度條顯示取消按鈕。爲了清除進度,我寫了加載器圖像隱藏在取消點擊按鈕在JavaScript中工作正常。如何殺死頁面的當前進程

但我的過程仍在運行如何取消這個過程點擊取消按鈕。 下面是點擊母版頁按鈕時觸發的方法。

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

當花更多的時間這個方法調用業務邏輯。當點擊取消按鈕時,它隱藏了加載圖像,但用戶不知道該過程是否被取消,並且在某些時候他獲得加載的gridview後知道該過程仍在運行。 我如何取消當前過程?

+0

業務邏輯花費更多的時間 - 它似乎sql查詢花費更多的時間給結果的儀式? – Kavin

+0

是的Kavin,這就是爲什麼我需要在這裏點擊取消按鈕過程應該殺死它。 –

+0

看到這個https://stackoverflow.com/questions/4779679/stop-sql-query-execution-from-net-code。希望它能幫助你。 – Kavin

回答

0

在該頁面聲明靜態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     
     } 
    }); 
} 

希望它可以幫助你..

+0

嗨Cavin,目前我正在使用另一個BA類,我有調用存儲過程的方法。這個方法是從asp.net頁面調用的。現在我不知道如何將這個命令發送到已經運行的那個方法。我已經檢查了一個Ajax調用,然後知道一個進程已經運行加載數據,直到這不是結束這個AJAX調用過程不是隻開始。 –

+0

我可以在沒有你的代碼的情況下幫助你,沒有你的代碼,我不能做任何事情。發佈你的代碼,並告訴我你在哪裏窒息..順便說一下,什麼是廣播事業? – Kavin

+0

BA意味着我有其他類庫,其中業務邏輯被定義爲執行過程和返回數據。我有一個簡單的問題,如果一個進程已經運行,我們不能發送另一個進程,直到第一個進程沒有完成。如果是這樣的話,我該如何取消特定的命令? –