2015-01-02 30 views
0

我想在用戶關閉.aspx頁面時刪除數據庫表格中的一行。我怎麼能這樣做?我知道如何刪除數據庫表中的一行,但我不知道如何在用戶離開.aspx頁面時執行此操作?關閉Asp.net頁面時執行一些代碼

+0

這不是一個小問題。最接近的解決方案,使用網絡套接字,並做你需要在客戶端斷開連接。但我認爲找到不同的工作流程會更好。 – Uriil

+2

關閉或退出平均會話結束或只是導航到另一個頁面? –

+0

如果你的意思是處理瀏覽器關閉,那麼你可以使用[這裏]提到的技術來處理這個問題(http://forums.asp.net/t/1116238.aspx?End+Session+When+Browser+Closed) –

回答

0

您可以將ajax調用綁定到「beforeunload」頁面html事件。只要確保使用async false調用ajax,否則在代碼刪除實際運行的行之前頁面會關閉。我假設你正在使用jQuery進行ajax調用。

例如,在HTML:

<body onbeforeunload="runCode();"> 

YOUR HTML.... 

<script type="text/javascript"> 
function runCode() { 
    $.ajax({ 
     url: 'YourCode.ashx', 
     async: false, 
     success: function(data) { 
      //Do other things before navigating to other page or closing the browser 
     } 
    }); 
} 
</script> 
</body> 

命名YourCode.ashx將包含代碼刪除您的數據庫行,或者其他任何你想要做的文件。這樣,即使用戶關閉瀏覽器,代碼也會運行。請注意,如果YourCode.ashx中的代碼出現問題,異步false調用會鎖定您的頁面。

+0

在導航...之前做些其他的事情之後我應該粘貼什麼......? – user3724490

+0

我知道如何添加.ashx文件,但我不知道如何使用它。你可以幫助我嗎?謝謝 – user3724490

+0

//其他...你可以添加任何你想要的JavaScript,它不是強制性的(例如,你可能會返回一條消息,說刪除是否成功,你可以顯示它給用戶一個警報)。 ashx只是一個代碼,不會成爲頁面的一部分,類似於php文件。你可以找到大量的例子(順便說一句,由Visual Studio生成的默認ashx很容易理解自己) –

相關問題