【问题标题】:Navigate to a new page and display an alert box导航到新页面并显示警告框
【发布时间】:2018-04-04 07:00:03
【问题描述】:

我正在使用 ASP.Net WebForm 开发应用程序。一旦用户点击一个按钮,应用程序将导航到一个新页面并提示一个对话框“欢迎来到 JackiesGame”

但是,我可以导航到新页面,但没有显示警告对话框。

以下是我的示例代码

void cmdCancel_Click(object sender, EventArgs e)
{
    HttpContext.Current.Response.Redirect(Globals.NavigateURL(TabId), true);
    Page page2 = HttpContext.Current.CurrentHandler as Page;
    ScriptManager.RegisterStartupScript(page2, page2.GetType(), "alertMessage", "alert('Insert Successfully')", true);
}

【问题讨论】:

  • 你必须在新页面中执行 registerstartup 脚本。
  • @H.Mikhaeljan 我该怎么做?
  • 能否在新页面中添加一个js代码 $( document ).ready(function() { alert(""); });
  • @H.Mikhaeljan 现在我要问的是我有带有字符串的新页面的 url。如何将 URL 从字符串转换为 PAGE,以便我可以在新页面中使用“Globals.NavigateURL(TabId)” url RegisterStartupScript
  • 据我了解,您使用 Globals.navigateUrl(TabId) 来检索您的导航 url,但脚本应该在页面上加载它作为我给出的给定示例作为答案。您仍然可以使用您的第一行进行重定向。但是将RegisterScript放在页面的加载中。

标签: c# asp.net webforms httpcontext scriptmanager


【解决方案1】:

在第 2 页中添加以下内容。在页面加载时,它只会在页面第一次加载脚本时注册。

protected void Page_Load(object sender, EventArgs e)
{
   if(!Page.IsPostBack)
   {
    var reg = Request["Welcome"]
       if(reg != null && reg.ToString() == "yes"){
          ScriptManager.RegisterStartupScript(this, this.GetType(), "alertMessage", "alert('Insert Successfully')", true);
      }
   }
}

重定向后的所有代码都将被忽略,因为它必须重定向到新页面。所以代码永远不会被触发。

编辑 添加了一个如何进一步查看的示例

void cmdCancel_Click(object sender, EventArgs e)
{
    string myUrl = Globals.NavigateURL(TabId)+"?Welcome=yes";
    HttpContext.Current.Response.Redirect(myUrl, true);
}

【讨论】:

  • 您的解决方案适用于显示对话框,但是,每次应用程序导航到页面时,它也会显示对话框。我想要做的是在特定情况下,单击从 cmd 按钮仅显示对话框。
  • 如果您只想在特定时间使用它,那么您必须提供一些变量并在加载时读取它。如果变量存在则显示 else no。
  • 注意,我知道现在该做什么了。非常感谢
  • 我添加了一个示例,说明您如何做到这一点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多