Empêcher l'Actualisation de la Page en C#
Double de Asp.Net l'Événement Bouton sur l'actualisation des feux de nouveau??? GUID?
bonjour, j'ai un site web et lorsqu'un utilisateur clique sur un bouton et la page de publication, si l'utilisateur actualiser la Page ou appuyez sur la touche F5 sur le bouton de la méthode est appelée de nouveau.
tout savoir d'une certaine méthode pour empêcher l'actualisation de la page avec la redirection de la page à nouveau la même page ?
quelque chose comme si la page.isRefresh) ou quelque chose... ou si existe javascript solution est meilleure.
cette vu des œuvres.... mais quand j'actualise, il n'est pas publié mais de montrer l'avant de la valeur dans la zone de texte
http://www.dotnetspider.com/resources/4040-IsPageRefresh-ASP-NET.aspx
private Boolean IsPageRefresh = false;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["postids"] = System.Guid.NewGuid().ToString();
Session["postid"] = ViewState["postids"].ToString();
TextBox1.Text = "Hi";
}
else
{
if (ViewState["postids"].ToString() != Session["postid"].ToString())
{
IsPageRefresh = true;
}
Session["postid"] = System.Guid.NewGuid().ToString();
ViewState["postids"] = Session["postid"];
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if (!IsPageRefresh) //check that page is not refreshed by browser.
{
TextBox2.Text = TextBox1.Text + "@";
}
}
OriginalL'auteur jmpena | 2009-04-05
Vous devez vous connecter pour publier un commentaire.
Merci pour les commentaires et désolé pour mon erreur,
J'ai trouvé ce code:
http://www.codeproject.com/KB/aspnet/Detecting_Refresh.aspx
Et cette fois testé 😉
Qui s'arrête juste le bouton de travailler plus d'une fois, peu importe si le message provient d'un rechargement ou un clic sur le bouton.
oui cela fonctionne. de son le même code que j'ai trouvé, mais lorsque vous cliquez sur le bouton puis cliquer sur "actualiser" afficher "SALUT" et pas la nouvelle valeur. 😛 je pense que je peux vivre avec, ill essayer de modifier cela. merci
ok, désolé, ce n'est pas le même que j'ai trouvé!
mais que faire si l'état d'affichage est désactivé dans la page de la directive?
OriginalL'auteur Saber
Vous pouvez tester la Page.IsPostBack propriété pour voir si la page est répondre à une demande initiale ou si c'est de la manipulation d'une Publication tel que votre événement clic du bouton. Voici un peu plus d'informations: w3schools sur IsPostBack
Malheureusement cela ne va pas résoudre votre problème depuis IsPostBack sera vrai lorsque l'utilisateur clique sur le bouton ainsi que lors de leur rafraîchir la page après que le bouton d'action a eu lieu.
Si vous êtes en train de faire une tâche comme CRUD sur certaines données, vous avez la Réponse.Rediriger l'utilisateur vers la même page lorsque vous avez terminé le traitement de contourner ce problème. Il a aussi pour avantage de rechargement de votre contenu (en supposant que vous avez ajouté un enregistrement à la DB, il serait maintenant afficher dans la page...) et empêche ainsi le problème d'actualisation du comportement. Le seul inconvénient est qu'ils ont encore de soumettre à nouveau le formulaire en remontant dans leur histoire.
Publications ont été un mauvais choix pour la mise en œuvre Asp.net et c'est généralement ce qui ruine les Formulaires plate-forme pour moi.
OriginalL'auteur John Lewin
Cela ne résout pas le problème.
Tout d'abord, le stockage d'un jeton dans l'état d'affichage n'est pas une bonne idée, car il peut être désactivé. Utilisez le contrôle de l'état à la place. Bien que, d'un HttpModule est une meilleure solution.
Dans l'ensemble, cela ne fonctionnera pas de toute façon. Si vous ouvrez un autre onglet/fenêtre de la session sera pas valide pour le précédent onglet/fenêtre. Donc de freinage. Vous devez en quelque sorte stocker une valeur unique à chaque fois qu'une page est chargée pour la première fois. L'utiliser pour déterminer la provenance de la demande et de vérifier ensuite l'actualisation "billet". Comme vous pouvez le voir, l'objet pour un utilisateur pourrait obtenir assez grand en fonction de la quantité de demandes présentées, où et combien de temps vous stocker cette information.
Je n'ai pas vu de solution à cela, je crains que, comme il est assez complexe.
OriginalL'auteur André Hedberg
bool IsPageRefresh;
obtenir défini?il est préférable de l'utiliser comme une variable globale et le reste du code dans la méthode pageload, de cette façon, vous pouvez utiliser le IsPageRefresh à tout moment.
OriginalL'auteur laertespl
J'ai essayé de nombreuses façons et je me suis retrouvé à la recherche pour les données du formulaire envoyé lors de la publication de rafraîchissement est déclenchée... j'ai trouvé qu'il y est une Clé pour tout VIEWSTATE créé et vous pouvez simplement comparer les Touches...
Je l'ai mis sur mon custom basepage pour les réutiliser comme une Propriété
OriginalL'auteur Jorge Loreto