equinoxe83
Messages postés240Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention18 février 2011
-
4 août 2007 à 13:27
equinoxe83
Messages postés240Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention18 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
lolokun
Messages postés1241Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention27 août 20137 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?
equinoxe83
Messages postés240Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention18 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 ...).
Vous n’avez pas trouvé la réponse que vous recherchez ?
lolokun
Messages postés1241Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention27 août 20137 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.
equinoxe83
Messages postés240Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention18 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 !!
equinoxe83
Messages postés240Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention18 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) ...