急!!ASP.NET C#关闭页面引发什么事件??
我要做的是关闭页面后,将数据库中临时建的表中的相关数据删掉。现在的问题是,页面关闭在后台触发的是什么事件,别弄js的,这个要操作数据库…………我全部用数据库搞定了,没有用...
我要做的是关闭页面后,将数据库中临时建的表中的相关数据删掉。
现在的问题是,页面关闭在后台触发的是什么事件,别弄js的,这个要操作数据库…………
我全部用数据库搞定了,没有用到任何JS,不过这个是从那个“心跳包”启发想到的~~
结贴,分给你了 展开
现在的问题是,页面关闭在后台触发的是什么事件,别弄js的,这个要操作数据库…………
我全部用数据库搞定了,没有用到任何JS,不过这个是从那个“心跳包”启发想到的~~
结贴,分给你了 展开
10个回答
展开全部
asp.net 的页面的所有事件,都是在服务器端,页面还没有下载到客户端之前发生的,当HTML被下载到客户端浏览器呈现之后,不用js,不用ajax,在下次POSTBACK之前,,就跟服务器端没什么关系了。
基本上说,asp.net无法直接捕获到页面关闭的事件。
通过js可以在获取页面关闭时的事件,并通过ajax通知服务器。但是,这个操作并不能保证能按预想中的完成。
另外一种常用的方式就是利用会话超时。如果你对时间精度要求比较高,可以自己设计一个会话超时控制方案,同时通过ajax来发送“心跳包”,当页面关闭后,服务器就会在指定的时间内收不到心跳包,以此来判断页面已被关闭,从而做相应的操作。
基本上说,asp.net无法直接捕获到页面关闭的事件。
通过js可以在获取页面关闭时的事件,并通过ajax通知服务器。但是,这个操作并不能保证能按预想中的完成。
另外一种常用的方式就是利用会话超时。如果你对时间精度要求比较高,可以自己设计一个会话超时控制方案,同时通过ajax来发送“心跳包”,当页面关闭后,服务器就会在指定的时间内收不到心跳包,以此来判断页面已被关闭,从而做相应的操作。
展开全部
这个只能使用javascript实现:
客户端关闭窗口的事件是可以捕捉到的。
捕捉事件后进行数据库操作至少有3个方法。
1、正统的方法,使用ajax完成异步请求,操作数据库。
2、在页面里放置一个frame。关闭页面时候,通过js刷新那个frame,在frame的页面进行数据库操作。
3、捕捉关闭事件,把页面跳转到一个新页面,去完成数据库操作。
客户端关闭窗口的事件是可以捕捉到的。
捕捉事件后进行数据库操作至少有3个方法。
1、正统的方法,使用ajax完成异步请求,操作数据库。
2、在页面里放置一个frame。关闭页面时候,通过js刷新那个frame,在frame的页面进行数据库操作。
3、捕捉关闭事件,把页面跳转到一个新页面,去完成数据库操作。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题暂时还没最好的办法,因为点浏览器的那个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在这个页面来处理你的事情就好了
<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在这个页面来处理你的事情就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private void Form1_FormClosing(object sender, FormClosingEventArgs e){
}
//或
private void Form1_FormClosed(object sender, FormClosedEventArgs e){
}
}
//或
private void Form1_FormClosed(object sender, FormClosedEventArgs e){
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
别弄js的,这个要操作数据库
如果有这个条件的话,就放弃吧.即使用什么 Page_Unload,也不可靠.不信试试
如果有这个条件的话,就放弃吧.即使用什么 Page_Unload,也不可靠.不信试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也遇见跟你同样的问题,但是我没有借助事件
我直接在load里面写上 if(!this.IsPostBack)
先搜索数据库信息 判断dataSet.Table[].Rows.Count == 0
如果为0就重新搜索数据库临时表的信息,
else
{
将数据库临时表信息删除
}
在button_chick中写查询时间
这样应该好使了
我直接在load里面写上 if(!this.IsPostBack)
先搜索数据库信息 判断dataSet.Table[].Rows.Count == 0
如果为0就重新搜索数据库临时表的信息,
else
{
将数据库临时表信息删除
}
在button_chick中写查询时间
这样应该好使了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询