gstrit
Messages postés78Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention15 mars 2007
-
6 mars 2007 à 17:35
gstrit
Messages postés78Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention15 mars 2007
-
15 mars 2007 à 11:40
Bonjour,
Voilà j'ai un treeview ainsi qu'une formview sur ma page. Le principe est que quand je valide la formview ça ajoute une entrée dans une table (Oracle) et le treeview lit cette table. Le tout est intégré dans un updatePanel
Donc je rempli ma formview et je valide. Le postback se passe bien, je vois bien mon enregistrement dans mon treevien.
Le problème survient lorsque je fais F5 à la suite de ça. Je vois alors un dexième enregistrement apparaitre dans ma treeview et g bien sur la meme chose dans la table. J'en conclue que lorsque je fais F5 il republie exactement la même requete que la précédente. C'était prévisible mais comment empécher ce phénomène?
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 6 mars 2007 à 20:11
Oui quand tu fais F5 il te renvoie exactement la meme page, par contre si tu utilises un UpdatePanel le postback est invisible puisqu'il se fait via javascript donc en appuyant sur F5 la page se rafraichis mais de la meme facon que lors du vrais rafraichissement complet de la page, donc normalement tu devrais pas avoir de problème du genre si tu fais un AsyncPostBack ...
la solution pour éviter ce problème est de faire un response.Redirect sur la meme page :-/ et bien sur de sécuriser ta apge pour qu'on puisse pas faire trop d'insert
gstrit
Messages postés78Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention15 mars 2007 6 mars 2007 à 21:38
Il me semble que Nikhil Kothari avait proposé une solution sur son site mais impossible de remettre la main dessus. En fait ça consistait à vérifier dans un module de type IHttpModule que la requete courante n'a pas le même header que la précédente.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 6 mars 2007 à 22:27
Ce que tu cherches de Nikhil c'est ca : http://www.nikhilk.net/BackButtonSupport.aspx mais je ne pense pas que cela résolvera ton problème. Ce qui est bizarre c'est que la touche back relance ton click sur le bouton alors que tu le fais dans un UpdatePanel, donc via un AsyncPostBack
gstrit
Messages postés78Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention15 mars 2007 7 mars 2007 à 09:13
Non non c'est pas ça que je cherche. Ce que je cherche n'est pas un projet à lui mais simplement un morceau de code qu'il avait mis en guise de réponse au commentaire de quelqu'un sur un de ces articles.
C'est vrai que c'est bizarre et ça mele fait sur toutes mes pages...
Vous n’avez pas trouvé la réponse que vous recherchez ?
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 7 mars 2007 à 11:29
Le problème est bien :
Tu as un gridview dans un UpdatePanel tu ajoutes une nouvelle ligne, l'UpdatePanel (et seulement lui) se met à jour, tu click sur le bouton précédent et il y a une nouvelle ligne d'inséré ?
gstrit
Messages postés78Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention15 mars 2007 15 mars 2007 à 11:40
Non pas exactement.
J'ai un treeview et une formview. Les deux sont à l'intérieur dans UpdatePanel.
La formview sert à mettre à jour la treeview.
Si j'insère un élément dans mon treeview (via la forview), tout va bien. J'ai bien mon enregistrement qui s'est inséré dans le treeview. Maintenant si je fais F5, c'est à dire que je renvoie la même requete au serveur que la précédente, il me réinsere le même élément dans mon treeview.
En effet quand je mets un point d'arret dans la fonction qui insere l'enregistrement en base, il s'y arrete bien 2 fois.
Alors j'ai un peu regardé ce que je pouvais faire avec un ihttpmodule, mais c'est pas concluant pour le moment.