Dans mon formulaire Web ASP.NET, je dois informer les utilisateurs que leurs commentaires ont été envoyés. J'ai l'intention de le faire en faisant cela dans mon code-behind:
protected void lblButton_Click(object sender, EventArgs e) { Response.Redirect(Request.RawUrl); //Refresh page Messagebox("Feedback submitted. Click OK to go back."); return; } public void Messagebox(string xMessage) { Response.Write("<script>alert('" + xMessage + "')</script>"); }
Cependant, lorsque j'exécute ceci, ma page est toujours actualisée sans que la boîte de message ne s'affiche.
Si j'échange Response.Direct avec Messagebox, rien ne change.
Qu'est-ce que je fais de mal?
3 Réponses :
Je pense que vous devez utiliser Response.Redirect (URL, false) dans votre code ..
protected void lblButton_Click(object sender, EventArgs e) { Response.Redirect(Request.RawUrl,false); //Refresh page ScriptManager.RegisterClientScriptBlock((Page)(HttpContext.Current.Handler), typeof(Page), "alert", "javascript:alert('Feedback submitted. Click OK to go back.');", true); return; }
Response.Redirect (URL, false):
Le le client est redirigé vers une nouvelle page et la page actuelle sur le serveur continuera à être traitée.
Response.Redirect (URL, true):
Le client est redirigé vers une nouvelle page , mais le traitement de la page en cours est interrompu.
Encore une fois, le message ne s'affiche pas alors essayez d'utiliser ..... Javascript Alert ...
protected void lblButton_Click(object sender, EventArgs e) { Response.Redirect(Request.RawUrl,false); //Refresh page Messagebox("Feedback submitted. Click OK to go back."); return; }
L'alerte est spécifique à la page, donc même si la boîte de dialogue d'alerte s'affiche, elle disparaîtra dès que le client sera redirigé.
Suite à l'une des suggestions que j'ai reçues, j'ai fini par utiliser une page de confirmation avec un bouton OK qui est appelé à partir du fichier aspx:
<asp:Button runat="server" ID="btnSave" Click="btnSave_Click" Text="Save" OnClientClick="return confirm('Are you sure you want to do this thing?');" />
Pourquoi la boîte de message s'affiche-t-elle? Vous avez lancé une actualisation avant de pouvoir l'afficher. Échangez peut-être ces 2 lignes de code.
Rien n'a changé - question modifiée.