2015-01-02 29 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很容易理解自己) –

相关问题