Variable globale

Résolu
Pepin21 Messages postés 63 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 10 mai 2006 - 24 févr. 2006 à 10:46
Pepin21 Messages postés 63 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 10 mai 2006 - 24 févr. 2006 à 11:55
Bonjour,
voilà mon problème :
j'ai définie une variable globale count que j'initialise à 0 dans la fonction page_load si c'est le premier chargement de la page.
A mon premier changement d'item d'une dropdownlist, count passe à 1. J'ai une deuxième dropdownlist et j'aimerais qu'à son changement d'item son comportement dépend de la valeur de count (donc 1 normalement) mais, pas de chance il est à 0.
Je ne comprend donc pas pourquoi count est de nouveau à 0 alors que je le définie à 0 juste au premier chargement de la page.
Si vous pouviez m'aider.

4 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 févr. 2006 à 11:04
Bonjour,

c'est tout à fait normal ! Asp.net ne fonctionne pas comme un programme, une instance de la classe est créer pour générer une page et ensuite et détruite ! dans ton cas lors du premier chargement il y a une instance de créer lors du deuxieme une nouvelle instance est créer

pour faire un truc du genre il faut stocker la valeur quelque part, dans ton cas je te conseille le viewstate (coté client) (tu as aussi les variables sessions (coté serveur) et applications (coté serveur et global a l'application)) pour les utiliser tu fais
viewstate("takey") "toto" et takey ctype(viewstate("takey"), integer)

généralement on fait des propriétés pour pas avoir besoin de manipuler à chaque fois le viewstate :)

<hr>Cyril - MVS - MCP ASP
3
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
24 févr. 2006 à 11:51
session["count"] = 2 // pour setter une variable session

int count = (int)session["count"] // pour récuperer une variable

<hr>Cyril - MVS - MCP ASP
3
Pepin21 Messages postés 63 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 10 mai 2006
24 févr. 2006 à 11:34
Au secours, je m'arrache les cheveux.
Comme je comprend mieux les variables de session, j'ai commencé par essayer avec elles. Donc je déclare un Session["count"] = 0 dans ma page de login à mon application. Donc je peux récupérer son contenu dans mon page_load mais comment puis je le modifier. Si je fais count1 = (int)Session["count"] et plus tard au changement d'item dans ma ddl, je ne peux modifier que count1 et pas mon session["count"]! Et mon count1 s'évanouira avec mon instance de classe.
0
Pepin21 Messages postés 63 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 10 mai 2006
24 févr. 2006 à 11:55
Je crois que je ne te remercirai jamais assez pour toute l'aide que tu peux m'apporter!
0
Rejoignez-nous