C# 当有人按下退出按钮时,我如何控制
我如何控制当有人按下firefox、chrome、IE、safari上的退出按钮时,或者控制按下风扇关闭按钮后将其从数据库中删除时,实际上我知道这一点。我唯一的问题是怎么抓住那个按钮 我有一些代码,但似乎不起作用。我得到的代码是这样的C# 当有人按下退出按钮时,我如何控制,c#,c#-4.0,jquery,asp.net-ajax,C#,C# 4.0,Jquery,Asp.net Ajax,我如何控制当有人按下firefox、chrome、IE、safari上的退出按钮时,或者控制按下风扇关闭按钮后将其从数据库中删除时,实际上我知道这一点。我唯一的问题是怎么抓住那个按钮 我有一些代码,但似乎不起作用。我得到的代码是这样的 function LogOutUser(result, context) { // don't do anything here } function LogMeOut() { LogOutUserCallBack
function LogOutUser(result, context) {
// don't do anything here
}
function LogMeOut() {
LogOutUserCallBack();
}
<div onload="SetScrollPosition()" onunload="LogMeOut()">
</div>
在我的default.aspx.cs上
public partial class _Default : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
string callBackReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "LogOutUser", "");
string logOutUserCallBackScript = "function LogOutUserCallBack(arg, context) { " + callBackReference + "; }";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "LogOutUserCallBack", logOutUserCallBackScript, true);
void System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
_callBackStatus = "failed";
// log out the user by deleting from the LoggedInUser table
DataClassesDataContext db = new DataClassesDataContext();
var loggedInUser = (from l in db.BrugerOnlines
where l.BrugerId == Convert.ToInt32(Session["ChatUserID"])
&& l.RumId == lb
select l).SingleOrDefault();
db.BrugerOnlines.DeleteOnSubmit(loggedInUser);
db.SubmitChanges();
var besvarer = (from p in db.Rums where p.FK_Bruger == Session["SupportAdd"].ToString() select p).SingleOrDefault();
db.Rums.DeleteOnSubmit(besvarer);
db.SubmitChanges();
// insert a message that this user has logged out
this.sendbesked("Bruger har lukket siden " + DateTime.Now.ToString());
_callBackStatus = "success";
}
string System.Web.UI.ICallbackEventHandler.GetCallbackResult()
{
return _callBackStatus;
}
在我的default.aspx上,它看起来是这样的
在页面顶部的javascript中,它如下所示
function LogOutUser(result, context) {
// don't do anything here
}
function LogMeOut() {
LogOutUserCallBack();
}
<div onload="SetScrollPosition()" onunload="LogMeOut()">
</div>
如果您只想在用户关闭浏览器时执行某些操作,请在页面正文的“卸载前”上调用您的方法 我看不出有任何理由去关注button事件 按下
X
按钮将导致会话结束
只需处理global.aspx会话_End
如本例所示:
注意:这不会在用户退出时发生,而是在seesion超时时发生
当用户离开页面导航时,卸载事件被发送到窗口元素。这可能意味着许多事情之一。用户可以单击链接离开页面,或者在地址栏中键入新的URL。前进和后退按钮将触发事件关闭浏览器窗口将触发事件。即使重新加载页面也会首先创建卸载事件。但如果我使用该选项,则等待会话结束,对吗?因为我将会话超时设置为1-2小时左右。timeout属性指定了分配给应用程序会话对象的超时时间,以分钟为单位。如果用户在超时期间未刷新或请求页面,会话将结束。我想那是一段很长的时间。为什么不;你能不能用10分钟来解决你的问题?因为我正在制作一个聊天应用程序,我不会在上面设置会话超时。他们想呆多久就呆多久。我想把它们扔掉的唯一方法是当它们使用关闭按钮时。所以只要在seision结束后进行清理,这有什么关系?那会有什么作用?我只是想了解我在做什么,为什么我的updatepanel中会有一个计时器来更新我的div调用卸载事件?我想你的答案中有希望。但是如果你能提供的话,我需要更多的信息