Variable globale [Résolu]

Signaler
Messages postés
63
Date d'inscription
jeudi 16 février 2006
Statut
Membre
Dernière intervention
10 mai 2006
-
Messages postés
63
Date d'inscription
jeudi 16 février 2006
Statut
Membre
Dernière intervention
10 mai 2006
-
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

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
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
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
session["count"] = 2 // pour setter une variable session

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

<hr>Cyril - MVS - MCP ASP
Messages postés
63
Date d'inscription
jeudi 16 février 2006
Statut
Membre
Dernière intervention
10 mai 2006

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.
Messages postés
63
Date d'inscription
jeudi 16 février 2006
Statut
Membre
Dernière intervention
10 mai 2006

Je crois que je ne te remercirai jamais assez pour toute l'aide que tu peux m'apporter!