【问题标题】:How to get alert message before redirect a page如何在重定向页面之前获取警报消息
【发布时间】:2012-01-24 03:21:54
【问题描述】:

我正在使用 vs 2010。我需要向用户显示消息并重定向页面。

我使用下面的行。

ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "<script> alert('User details saved sucessfully');window.open('frmDisplayUsers.aspx');</script>", true);

但是我没有收到警告信息,页面被直接重定向了。

如何获取提示信息?

【问题讨论】:

    标签: c# javascript asp.net


    【解决方案1】:

    您的代码正在打开窗口,但您要求重定向,以下是重定向示例:

    ScriptManager.RegisterStartupScript(this, this.GetType(), 
    "alert", 
    "alert('User details saved sucessfully');window.location ='frmDisplayUsers.aspx';", 
    true);
    

    【讨论】:

    • 如果有会话对象。我相信这种方法会消失。
    【解决方案2】:

    如果你想放入 .CS 文件,试试这个:

    var page = HttpContext.Current.CurrentHandler as Page;
               ScriptManager.RegisterStartupScript(page, page.GetType(), "alert", "alert('" + msg +"');window.location ='"+ aspx +"';", true);
    

    【讨论】:

      【解决方案3】:

      你需要写:

       ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", " alert('User details saved sucessfully'); window.open('frmDisplayUsers.aspx');", true);
      

      请注意,我已经删除了脚本标签,因为最后一个参数 true 意味着你不能使用脚本标签。

      这段代码对我有用。如果您有任何问题,请告诉我。此外,您可以使用setTimeout 延迟打开窗口,这可能不是一个非常糟糕的选择。

      【讨论】:

        【解决方案4】:

        如果您使用的是 UpdatePanel,那么您必须使用这个: 它适用于更新面板。

         var message = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize("Bill No. : " + BillNo + " successfully generated.");
                    var script = string.Format("alert({0});window.location ='ChhallanPrint.aspx';", message);
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "", script, true);
        

        【讨论】:

          【解决方案5】:

          密码更新提示信息后重定向到登录页面

          Dim MyScript As String = "alert('Password Updated Successfully!. Please Login Again!'); window.location = '../Login.aspx';"
          

          如果你的意图是将你的页面框架化到顶层,因为 您的页面可能在一个框架内,而该框架本身就在一个框架内。

          Dim MyScript As String = "alert('Password Updated Successfully!. Please Login Again!');window.top.location='../Logout.aspx';"
                      ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "MyScript", MyScript, True)
          

          【讨论】:

            【解决方案6】:

            如果可能,最好的方法是将代码放入 OnClientClick。

            <asp:Button OnClientClick=" alert('blah?');" runat="server" />
            

            将其放入启动脚本的问题在于启动脚本是在回发时运行的,而不是实时运行的。重定向将在回发之前发生。 (可能)

            另一种解决方案当然是将重定向放入启动脚本代码中。

            页面将回传,脚本将运行,然后重定向。

            【讨论】:

              【解决方案7】:

              我无法成功使用这些方法。 我改用Server.Transfer()

              示例:(来自Redirecting Another Page after Messagebox - CodeProject

              Response.Write("<script>alert('User details saved successfully');</script>");
              Server.Transfer("frmDisplayUser.aspx");
              

              【讨论】:

                【解决方案8】:

                您要求重定向页面,以下是重定向示例:

                   string page = "Login.aspx";
                        string myStringVariable = "Password Update!";
                        ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + myStringVariable + "');Response.Redirect('"+ page +"' );", true);
                

                【讨论】:

                  猜你喜欢
                  • 2018-07-29
                  • 2016-02-07
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-08-20
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多