本文介绍了如何在ASP.NET关闭页面服务器并清空对话层。内容非常详细。感兴趣的朋友可以参考一下,希望对你有所帮助。
要清除会话,您必须返回服务器,在那里您不能更改服务器的内容。关闭ASP.NET页面服务器端对话层的清空。我们可以在——中使用ajax。首先,我们需要确定用户何时关闭了页面,这样我们就可以执行下一个操作。然而,HTML DOM并不要求页面关闭事件。只有onunload和onbeforeunload与ASP.NET的页面关闭相关,与ASP.NET的页面关闭或刷新后的事件相关,与ASP.NET的页面关闭或刷新前的事件相关,所以我们要使用onbeforeunload。确定用户是关闭页面还是刷新页面。代码如下:
窗户。onbefore unload=function(){//这个是在网上找到的,但是没有具体验证过。Varn=窗口。event.屏幕窗口。屏幕左侧;
varb=n document . document element . scrollwidth-20;
if(英国)。event,客户0 | |窗口。event。altKey)
{
ClearSession();
}
}
ClearSession()是ajax调用请求服务器,服务器在收到请求后执行清除Session的操作。关于Ajax的内容不多,下面是代码。
=====================默认值。aspx start==============================================
“% @”页面语言=“c#”AutoEventWireup=“true”
CodeFile=' Default . aspx . cs ' inherits=' _ Default ' %
!DOCTYPEhtmlPUBLIC '-//W3C//DTDXHTML 1.0 transitional//EN '
http://www . w3 . org/TR/XHTML 1/DTD/XHTML 1-transitional . DTD '
html xmlns=' http://www . w3 . org/1999/XHTML '
headrunat='服务器'
没有标题页/标题nb
sp;
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server"></asp:Label>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="写入Session" /></div>
</form>
</body>
</html>
========================Default.aspx 结束===========================================
========================Default.aspx.cs 开始===========================================
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
if (!string.IsNullOrEmpty(Request.QueryString["___command"])) {
string cmd = Request.QueryString["___command"];
if (cmd == "ClearSession")
Session.Remove("name");//清空Session
}
if (Session["name"] != null)
this.Label1.Text = Session["name"].ToString();
} protected void Button1_Click(object sender, EventArgs e)
{ Session["name"] = "vvvvvvvvvvvvv";
if (Session["name"] != null)
this.Label1.Text = Session["name"].ToString();
}
}
========================Default.aspx.cs 结束===========================================
========================script.js 开始===========================================
function GetXmlHttpObject() {
//创建XMLHttpRequest对象来发送和接收HTTP请求与响应
xmlHttpObj = null; try {
// FireFox Opera 8.0+ Safari
xmlHttpObj = new XMLHttpRequest();
if(xmlHttpObj.overrideMimeType)
{
xmlHttpObj.overrideMimeType('text/xml');
}
}
catch(e) {
// IE try {
xmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
xmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttpObj;
}
function StateChanged() {
if(___xmlHttp.readyState == 4) {
if(___xmlHttp.status == 200) {
} else {
}
}
}
var ___xmlHttp=null;
function ClearSession()
{
if(___xmlHttp==null)
___xmlHttp = GetXmlHttpObject();
if(___xmlHttp == null)
return false;
var url = "?___command=ClearSession&___clientRandom=" + Math.random();
___xmlHttp.open("GET", url, true);
___xmlHttp.onreadystatechange = StateChanged;
___xmlHttp.send(null); }
window.onbeforeunload = function() {
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
if(b && window.event.clientY < 0 || window.event.altKey)
{ ClearSession();
}
}
关于ASP.NET如何关闭页面服务端及对话层清空就分享到这里了,希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/119737.html