Problème avec le postback

Anovil Messages postés 9 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 14 septembre 2006 - 24 janv. 2005 à 21:31
Anovil Messages postés 9 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 14 septembre 2006 - 24 janv. 2005 à 23:47
Bonjour à tous

Je débute tout juste sous .net et je rencontre un problème avec ce qui s'appelle je crois le "postback"
Par exemple avec un calendrier, quand je clic sur une date, et que je recupere dans le sub Page_Load la valeur selectionnée avec Calendar.Selecteddate, j'ai toujours un décallage de 1 clic. C'est à dire que quand j'ouvre ma page, selecteddate vaut 00:00:00. Quand je clique sur 1er janvier, ca me dit selecteddate la date système (la valeur par defaut). Ensuite si je clic sur 20 janvier, ca fait le dopostback du calendar et ca me dit : selecteddate 1er janvier. C pas facile pour gerer un planning ;')

Je rencontre ce probleme aussi sous un formulaire du style une quantité de produits qu'on modifie avec un bouton + et - avec la valeur qui s'affiche dans un textbox. Je fais a chaque clic sur + une verification que la limite n'est pas atteinte. Donc je test si la valeur dans le textbox est égale a ma limite, je disable le bouton. Et bien ca marche presque à ceci pres que ca depasse toujours de 1. Toujours a cause du meme probleme de postback je crois ca test avec la valeur d'avant le postback et non pas celle en cours :(

Merci pour votre aide.

Anovil.

3 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
24 janv. 2005 à 23:06
Tu as tres bien compris le problème, ce que tu dis est tout à fait vrai



La résolution du problème est ici :



sub page_load(...)

if not page.ispostback

textbox1.text = "text"

end if

end sub



Petite explication :



Un postback, c'est le chargement de la page, demandé par un controle,
un button etc... quand tu charges ta page, le serveur ne te connais
pas, meme si tu la recharges, il t'a completement oublié, il ne s'est
donc pas si le client appelle la page pour la premiere ou suite à un
postback, il execute donc de la meme facon le page_load de la page,
donc si tu ecrit tes données dans le page_load, celles ci vont etre
ecrites par dessus.



J'espere avoir été assez clair, si tu veux plus de détails, t'as qu'a demander






<!--StartFragment -->
<hr>

Cyril - Webmaster de Hoshimi.CodeS-SourceS.fr
0
Anovil Messages postés 9 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 14 septembre 2006 1
24 janv. 2005 à 23:32
J'avais commencé à conceptualiser ça en effet :)

Mais c'est pas exactement mon problème. Ca ressemble, sans être tout à fait ça. Je vais essayer de mieux m'exprimer.

Admettons, j'ai un formulaire avec :

<HR>
[-] quantité : 2 [+]

<HR>
Quand je clic sur [-] ca décremente 2
Quand je clic sur [+] ca incrémente 2

Admettons que dans la procedure qui incrémente je rajoute un controle du style :

<HR>
if CInt(quantite.text) = 5 then
boutonplus.enable = false
else
boutonplus.enable = true
end if

<HR>
Le résultat devrait être : je clic [+] ca donne 3, je reclic [+] ca donne 4, je reclic [+] ca donne 5 et le bouton se désactive. Or, il reste activé, et quand je reclic sur [+] ca passe à 6 ET LA il se desactive. Comme s'il faisait le test sur la valeur AVANT le postback du clic sur [+]. Je peux bien sur remplacer 5 par 4 dans le controle, mais c nul.

Nul surtout que ce problème se pose ailleurs et que je ne peux pas y remedier comme ca. Ce second cas est donc comme je le disais un calendar. Pour simplifier, quand je clic sur une date, ca postback et je fais label1.text = calendar1.selecteddate dans le page_load, donc à chaque postback ca me met à jour le label avec la date que j'ai cliqué, en théorie. En pratique ca marche mais avec la aussi un decallage. Quand je clic sur un jour, je dois recliquer sur un autre jour pour qu'il apparaisse dans le label, ou alors cliquer 2x dessus. La encore c'est comme si le label recuperait la valeur du calendar AVANT le postback, hors ce n'est pas ce que je veux :( existe-t-il un moyen de contourner le probleme ?

Merci encore :/ désolé si je m'exprime mal.

Anovil
0
Anovil Messages postés 9 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 14 septembre 2006 1
24 janv. 2005 à 23:47
Edit Edit Edit !!!

Pardon pardon :(

Pour l'exemple avec les [+] et [-] tu avais raison :/
Il fallait simplement que je fasse le controle en dehors du page_load ...

Je vais voir pour le calendar, mais j'ai peur que ça ne soit pas le même problème.

Anovil
0