2011-12-20 35 views
7

Estoy usando vs 2010. Necesito mostrar el mensaje al usuario y redirigir la página.Cómo recibir un mensaje de alerta antes de redirigir una página

Utilizo la siguiente línea.

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

Pero no recibí el mensaje de alerta y la página fue redirigida directamente.

¿Cómo recibir el mensaje de alerta?

Respuesta

23

Su código está abriendo la ventana, sino que le pide una redirección, a continuación es un ejemplo de una redirección:

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

tiene que escribir:

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

Tenga en cuenta que he quitado las etiquetas de script como el último parámetro cierto significa que no se debe utilizar la etiqueta script.

Este código funcionó para mí. Si tienes algún problema, házmelo saber. Además, puede usar setTimeout para retrasar la ventana abierta que podría no ser una opción muy mala.

0

La mejor manera, si es posible, es poner el código en el OnClientClick.

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

El problema de ponerlo en un StartupScript es que el StartupScript se ejecuta en la devolución de datos, no en tiempo real. La redirección ocurrirá antes de la devolución de datos. (posiblemente)

La otra solución, por supuesto, es poner la redirección en el código de inicio de secuencia.

La página volverá a publicar, se ejecutará el script y luego se redirigirá.

1

Si usted quiere poner en el archivo .CS, sólo trata de esto:

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

Si está trabajando con UpdatePanel entonces usted tiene que usar esto: Es un trabajo con el panel de actualización.

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); 
-1

Su solicitando una página de redirección, a continuación es un ejemplo de una redirección:

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

Redirigir a inicio de página después de la contraseña actualiza mensaje de alerta

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

Y si su intención es para enmarcar su página en el nivel superior, porque su página puede estar dentro de un marco que está dentro de un marco.

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