Déclaration de variable

equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011 - 4 août 2007 à 13:27
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011 - 10 août 2007 à 18:09
Bonjour,
J'ai une variable qui doit s'incrémenter en fonction du démasquage de cetains formview.
J'ai déclaré la variable (var) en début de code (pas dans le pageLoad).
dim var as short = 1

Au fur et à mesure que les formview sont appelés (visible = true), j'incrémente var de 1

un exemple :

Protected
Sub AutreDemandeBT2_Click(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)FormView3.Visible =

Truevar += 1

End
Sub

j'ai 5 formview que je peux faire apparaitre à la suite.
Le Pb c'est qu'à chaque fois que j"ouvre une nouvelle formview, il me réinitialise var à 1.
Exemple d'ouverture d'une formview

Protected
Sub AutreDemandeBT_Click(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)FormView2.Visible =

TrueNombreDeDemandes += 1

End
Sub

Si je tente de déclarer var dans le pageLoad (pour utiliser if page.IsPosBack, par exemple), il m'insulte (var n'est pas déclarée (au niveau des sub d'incrémentation.

Je dois avoir un Pb de culture ... Il est vrai que j'ai laissé un peu de côté les histoires d'héritage et tout ce qui va avec).
UN petit éclaiurage serait bienvenu (ou un simple lien )
Merci

7 réponses

us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
4 août 2007 à 23:33
Bonsoir,

Ben, peut-être que le problème de culture que tu évoques se situe là :

"var += 1"

en effet, en VB pour incrémenter une variable on écrit cette syntaxe :

"var=var+1"

Comme tu l'as écris, en VB cela sera effectivement interprêté en var=1...

Amicalement,
Us.
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
5 août 2007 à 01:32
Salut Us,
Pas d'erreur. on peut utiliser les deux formules...
Merci quand même.
@+
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
10 août 2007 à 14:13
Salut,

Oui l'incrémentation fonctionne aussi comme cela.
Je pense que c'est un problème d'accès du fait des protected sub..
La variable var est bien déclarée en public en haut du module afin d'y avoir accès partout?
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
10 août 2007 à 14:59
Bonjour Lolokun,
En effet, ell est bien déclarée en début de module et en public.
Sur un post modifié en "portée d'une variable", pour lequel la réponse a été d'utiliser une variable de session.
Voici la réponse :

Pour conserver la valeur d'une variable entre deux postback, tu peux tout simplement utiliser les variables de session.
Exemple (C#) :
Session["Compteur"] = 0;

Pour recuperer la valeur :
int iVal = Convert.ToInt32(Session["Compteur"].ToString());

ça marche mais ça n'explique pas ce Pb de "Public dim qui fonctionne pas .. Si tu as une idée du pourquoi, je suis preneur !
Je suis finalement passé par un texbox invisible sur la page (c'est de la bricole, mais bon ...).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
10 août 2007 à 16:17
Protected
Le mot clé Protected de l'instruction Dim déclare les éléments accessibles uniquement à l'intérieur d'une même classe ou d'une classe dérivée de celle-ci.

Je pense que pour une sub cela fonctionne pareil, ta variable est modifiée quand tu es encore dans ta sub.
Essaye de faire un Messagebox.show(var) avant de quitter ta sub.
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
10 août 2007 à 17:59
J'ai testé en mode debug et j'ai bien une incrémentation. Celà dit, j'ai pas vérifié après la sortie de proc ...
Je vais tester tout de suite !
@ toute à l'heure, donc !!
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
10 août 2007 à 18:09
ah ben non !! Je suis pas dans le truc, là ...
Désolé mais je fais comment pour mettre un messagebox .show après la proc ? Vu que cette dernière fait un postback, on retourne au point de départ (réinitialisation de var) ...
0
Rejoignez-nous