【问题标题】:JavaScript PopUp appears only ONCE on a page per user in ASP.NETJavaScript PopUp 在 ASP.NET 中的每个用户的页面上仅出现一次
【发布时间】:2021-10-11 15:51:36
【问题描述】:

这是我已经知道答案的事情,但我想想出一个更好的方法。我在网格视图中有一个下拉菜单。在填充下拉数据的方法中,我向下拉列表添加了一个“onchange”属性。 onchange 调用一个 javascript 函数,然后根据用户在下拉菜单中选择的内容触发一个弹出窗口。

我的问题是我希望弹出窗口在该用户的当前页面中只显示一次。最简单的答案是使用 JavaScript sessionStorage 来存储一些在 javascript 弹出代码运行之前检查的虚拟值,然后再进行设置。

我遇到的问题是,我必须通过在用户转到另一个页面时通过将 storage.clear 附加到所有处理移动到另一个页面的按钮来清除存储来管理存储。

有没有一种方法可以在人们移动到他们所在页面以外的另一个页面后清除存储空间。顺便说一句,下拉列表和 javascript 都位于 ASP.NET 自定义控件中。该自定义控件加载在多个页面中,因此我希望将逻辑隔离在自定义控件中,这样我就不必对使用该控件的每个页面进行更改并实现模块化。

【问题讨论】:

    标签: javascript asp.net vb.net


    【解决方案1】:

    您可以在加载页面时,只需为页面设置一个全局 js var,如下所示:

    protected void Page_Load(object sender, EventArgs e)
    {
    string script;
    if (IsPostBack)
    {
        script = "var isPostBack = true;";
    }
    else
    {
        script = "var isPostBack = false;";
    }
    Page.ClientScript.RegisterStartupScript(GetType(), "IsPostBack", script, true);
    }
    

    所以,现在在你的 js 代码中,你可以使用 isPostBack 作为一个简单的真/假变量。

    【讨论】:

      猜你喜欢
      • 2016-01-23
      • 1970-01-01
      • 2015-10-16
      • 2016-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多