急!!ASP.NET C#关闭页面引发什么事件??

我要做的是关闭页面后,将数据库中临时建的表中的相关数据删掉。现在的问题是,页面关闭在后台触发的是什么事件,别弄js的,这个要操作数据库…………我全部用数据库搞定了,没有用... 我要做的是关闭页面后,将数据库中临时建的表中的相关数据删掉。
现在的问题是,页面关闭在后台触发的是什么事件,别弄js的,这个要操作数据库…………
我全部用数据库搞定了,没有用到任何JS,不过这个是从那个“心跳包”启发想到的~~
结贴,分给你了
展开
 我来答
iceser
2009-09-22 · TA获得超过2708个赞
知道大有可为答主
回答量:695
采纳率:100%
帮助的人:452万
展开全部
asp.net 的页面的所有事件,都是在服务器端,页面还没有下载到客户端之前发生的,当HTML被下载到客户端浏览器呈现之后,不用js,不用ajax,在下次POSTBACK之前,,就跟服务器端没什么关系了。

基本上说,asp.net无法直接捕获到页面关闭的事件。

通过js可以在获取页面关闭时的事件,并通过ajax通知服务器。但是,这个操作并不能保证能按预想中的完成。

另外一种常用的方式就是利用会话超时。如果你对时间精度要求比较高,可以自己设计一个会话超时控制方案,同时通过ajax来发送“心跳包”,当页面关闭后,服务器就会在指定的时间内收不到心跳包,以此来判断页面已被关闭,从而做相应的操作。
dsheen
2009-09-23 · TA获得超过898个赞
知道大有可为答主
回答量:1874
采纳率:0%
帮助的人:1328万
展开全部
这个只能使用javascript实现:
客户端关闭窗口的事件是可以捕捉到的。

捕捉事件后进行数据库操作至少有3个方法。
1、正统的方法,使用ajax完成异步请求,操作数据库。
2、在页面里放置一个frame。关闭页面时候,通过js刷新那个frame,在frame的页面进行数据库操作。
3、捕捉关闭事件,把页面跳转到一个新页面,去完成数据库操作。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6f75ac8fa
2009-09-23 · TA获得超过2513个赞
知道大有可为答主
回答量:1.3万
采纳率:0%
帮助的人:4020万
展开全部
这个问题暂时还没最好的办法,因为点浏览器的那个X是没办法获取到的。还有浏览器的兼容问题。你这个问题是必须要用JS来实现的。
<script language="javaScript" type="text/javascript">
window.onunload=function removeline(){
if(event.clientX<0&&event.clientY<0)
{
//alert('w');//<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>onbeforeunload//onunload
document.write('<iframe width="100" height="100" src="delesession.aspx"></iframe><OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>');
document.all.WebBrowser.ExecWB(45,1);
}
}
</script>
delesession.aspx在这个页面来处理你的事情就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柴关贵深0m
2009-09-22 · TA获得超过1142个赞
知道小有建树答主
回答量:1270
采纳率:0%
帮助的人:0
展开全部
private void Form1_FormClosing(object sender, FormClosingEventArgs e){
}
//或
private void Form1_FormClosed(object sender, FormClosedEventArgs e){
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kid83
2009-09-22 · TA获得超过2081个赞
知道大有可为答主
回答量:1818
采纳率:0%
帮助的人:1997万
展开全部
别弄js的,这个要操作数据库

如果有这个条件的话,就放弃吧.即使用什么 Page_Unload,也不可靠.不信试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
楣以晴0hK
2009-09-30 · TA获得超过285个赞
知道小有建树答主
回答量:331
采纳率:0%
帮助的人:204万
展开全部
我也遇见跟你同样的问题,但是我没有借助事件
我直接在load里面写上 if(!this.IsPostBack)
先搜索数据库信息 判断dataSet.Table[].Rows.Count == 0
如果为0就重新搜索数据库临时表的信息,
else
{
将数据库临时表信息删除
}
在button_chick中写查询时间
这样应该好使了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式