单击按钮时创建Session["smn"]
。
我希望当弹出控件关闭时,Session会清除。
<script type="text/javascript">
function ClearSession()
{
//clear Session["smn"];
}
</script>
ASPxPopupControl
<dx:ASPxPopupControl ID="popup1" PopupHorizontalAlign="WindowCenter" runat="server"
ClientInstanceName="popup1" PopupVerticalAlign="WindowCenter" ShowPinButton="true"
ShowCollapseButton="true" CloseAction="CloseButton" AllowDragging="True" Width="800px" Height="600px">
<ContentCollection>
<dx:PopupControlContentControl ID="PopupControlContentControl1" runat="server">
</dx:PopupControlContentControl>
</ContentCollection>
<ClientSideEvents CloseButtonClick="ClearSession" />
</dx:ASPxPopupControl>
如何在Session["smn"]
功能中清除ClearSession()
?
答案 0 :(得分:3)
会话变量存储在服务器端。有很多方法可以清除Server Side会话端。
以下是创建ClearSession.ashx(通用处理程序)的一种方法。要清除服务器端会话状态,请从javascript调用ClearSession.ashx
。
public class ClearSession : IHttpHandler, IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
context.Session["Date"] = null;
}
public bool IsReusable
{
get { return false; }
}
}
答案 1 :(得分:3)
如果您需要在CloseButtonClick
事件中关闭弹出窗口清除会话,那么您可以使用页面上的隐藏按钮并使用javascript触发该事件,以清除您的会话,如下所示:
1.在页面中添加CSS
<style>.hidden { display: none; }</style>
2.添加此脚本
function ClearSession() { document.getElementById("btnHidden").click(); }
3.添加一个像这样的隐藏控件
<asp:Button ID="btnHidden" runat="server" CssClass="hidden" OnClick="Button1_Click" ClientIDMode="Static" />
4.在你的代码中添加这个
protected void Button1_Click(object sender, EventArgs e) { Session["smn"] = null; }
现在你可以控制上面的javascript,几乎和你的一样:
<ClientSideEvents CloseButtonClick="ClearSession()" />
答案 2 :(得分:1)
您需要告诉服务器终止会话变量。
你无法单独用javascript杀死会话。对服务器进行AJAX调用,并将变量设置为null
。