【问题标题】:How to clear Session in JavaScript?如何在 JavaScript 中清除 Session?
【发布时间】:2014-07-30 12:23:21
【问题描述】:

点击按钮时我创建了一个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>

如何清除ClearSession()函数中的Session["smn"]

【问题讨论】:

    标签: javascript asp.net session devexpress


    【解决方案1】:

    如果您需要在 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()" />
    

    【讨论】:

    • 是的,这是一个很好的解决方案,但是 - user3107343 - 您是否了解会话状态对于您页面中的 JavaScript 不存在
    • -1 to @sh1rts 你这么说有什么意义? OP 没有要求在 JavaScript 中使用会话。他只想使用 JavaScript 清除会话
    【解决方案2】:

    会话变量存储在服务器端。有很多方法可以清除服务器端会话端。

    这是创建 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; }
        }
    }
    

    【讨论】:

      【解决方案3】:

      您需要告诉服务器终止会话变量。

      您不能单独使用 javascript 终止会话。对服务器进行 AJAX 调用并将变量设置为 null

      【讨论】:

        猜你喜欢
        • 2018-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-18
        • 2012-09-25
        • 1970-01-01
        • 2012-05-24
        • 1970-01-01
        相关资源
        最近更新 更多