web-dev-qa-db-fra.com

Comment obtenir un message d'alerte avant de rediriger une page

J'utilise vs 2010. Je dois afficher le message à l'utilisateur et rediriger la page.

J'utilise la ligne ci-dessous.

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

Mais je n'ai pas reçu le message d'alerte et la page a été directement redirigée.

Comment obtenir un message d'alerte?

12
Pooja

Votre code ouvre une fenêtre mais vous demandez une redirection. Vous trouverez ci-dessous un exemple de redirection:

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

Si vous voulez mettre un fichier .CS, essayez ceci:

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

Vous devez écrire:

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

Veuillez noter que j'ai supprimé les balises de script car le dernier paramètre true signifie que vous ne devez pas utiliser la balise de script.

Ce code a fonctionné pour moi. Si vous avez un problème, faites le moi savoir. De plus, vous pouvez utiliser setTimeout pour retarder l’ouverture de la fenêtre qui pourrait ne pas être un très mauvais choix.

1
Moons

Le meilleur moyen, si possible, consiste à insérer le code dans OnClientClick.

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

Le problème avec l'insertion dans un startupscript est que ce dernier est exécuté à la publication, pas en temps réel. La redirection aura lieu avant la publication. (peut-être)

L’autre solution est bien sûr de placer la redirection dans le code startupscript.

La page sera postée, le script sera exécuté et ensuite il sera redirigé. 

0
Sam Sussman

Si vous travaillez avec UpdatePanel, vous devez utiliser ceci: C'est travailler avec le panneau de mise à jour.

 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
Gautam Kumar Sahu

Redirection vers la page de connexion après le message d'alerte de mise à jour du mot de passe

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

Et si votre intention est de placer votre page dans le niveau supérieur, car Votre page peut se trouver dans un cadre lui-même.

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