如何在重定向页面之前获取警报消息

13

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

我使用下面的代码行。

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

但是我并没有收到警告消息,而且页面直接重定向了。

如何获取警告消息?

8个回答

35

您的代码打开了一个窗口但却请求重定向,以下是重定向的示例:

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

如果存在一个会话对象,我相信使用这种方法会使其消失。 - Robert Koernke

2
如果您想将其放在 .CS 文件中,只需尝试以下操作:
var page = HttpContext.Current.CurrentHandler as Page;
           ScriptManager.RegisterStartupScript(page, page.GetType(), "alert", "alert('" + msg +"');window.location ='"+ aspx +"';", true);

2

你需要编写:

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

请注意,我已删除脚本标签,因为最后一个参数为 true 表示您不能使用脚本标签。
这段代码对我有用。如果您遇到任何问题,请告诉我。另外,您可以使用 setTimeout 来延迟打开窗口,这可能不是一个非常糟糕的选择。

0
如果您正在使用UpdatePanel,则必须使用以下内容: 它可以与Update Panel一起工作。
 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);

0

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

示例:(来自在消息框后重定向另一页 - CodeProject

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

0

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

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

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

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

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


0

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

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)

-1

您正在请求一个重定向页面,下面是一个重定向的示例:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接