这些天做项目的时候,碰到这么一个问题,就是在关闭页面的时候才对数据库做某些改动。
联想到 winform 中有 form_closing 事件,于是就去网上搜索 asp.net 是否也有类似
的事件,呵呵,结果很遗憾,没有。
我的实现步骤如下:
①在 Default.aspx 的 body 标签中添加 onunload="deleteTempdata();"
deleteTempdata 函数的实现如下:
function deleteTempdata( )
{
CreateHttpRequest();
HttpRequest.open("GET","DeleteTempPage.aspx");
HttpRequest.send(null);
HttpRequest.onreadystatechange = deleteFunc;
}
function deleteFunc()
{
if(HttpRequest.readyState==4)
{
if(HttpRequest.status==200)
{
}
}
}
② DeleteTempPage.aspx 中无任何内容,只在 Page_Load 中有如下代码:
代码
if (!IsPostBack)
{
bool i = PKHS_DataInput_TJ.Single.Delete_FieldVerifyOutput( );
if (i)
{
Response.Write("success");
}
else
{
Response.Write("failure");
}
}
这样,也就实现了当页面关闭时,对数据库操作的目的。
此处不能用重写 OnUnload 的方法,因为该事件发生在页面装载完成以后。