如何在JavaScript中清除Session?

时间:2014-06-09 21:12:02

标签: javascript asp.net session devexpress

单击按钮时创建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()

3 个答案:

答案 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