[英]How to get alert message before redirect a page
我正在使用 vs 2010。我需要向用户显示消息并重定向页面。
我使用下面的行。
ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "<script> alert('User details saved sucessfully');window.open('frmDisplayUsers.aspx');</script>", true);
但是我没有收到警报消息,页面被直接重定向。
如何获取警报消息?
您的代码正在打开窗口,但您要求重定向,以下是重定向的示例:
ScriptManager.RegisterStartupScript(this, this.GetType(),
"alert",
"alert('User details saved sucessfully');window.location ='frmDisplayUsers.aspx';",
true);
如果你想放入 .CS 文件,试试这个:
var page = HttpContext.Current.CurrentHandler as Page;
ScriptManager.RegisterStartupScript(page, page.GetType(), "alert", "alert('" + msg +"');window.location ='"+ aspx +"';", true);
你需要写:
ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", " alert('User details saved sucessfully'); window.open('frmDisplayUsers.aspx');", true);
请注意,我已删除脚本标签,因为最后一个参数 true 表示您不得使用脚本标签。
这段代码对我有用。 如果您有任何问题,请告诉我。 此外,您可以使用setTimeout
延迟窗口打开,这可能不是一个非常糟糕的选择。
如果您正在使用 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);
密码更新警报消息后重定向到登录页面
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)
我无法成功使用这些方法。 我使用Server.Transfer()
代替。
示例:(来自在 Messagebox 之后重定向另一个页面 - CodeProject )
Response.Write("<script>alert('User details saved successfully');</script>");
Server.Transfer("frmDisplayUser.aspx");
如果可能,最好的方法是将代码放入 OnClientClick 中。
<asp:Button OnClientClick=" alert('blah?');" runat="server" />
将其放入启动脚本的问题在于启动脚本是在回发时运行的,而不是实时运行的。 重定向将在回发之前发生。 (可能)
另一个解决方案当然是将重定向放入启动脚本代码中。
该页面将回发,脚本将运行,然后将重定向。
您的请求重定向页面,以下是重定向的示例:
string page = "Login.aspx";
string myStringVariable = "Password Update!";
ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + myStringVariable + "');Response.Redirect('"+ page +"' );", true);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.