2010-03-25 11 views
0

J'ai la variable suivante qui crée un problème lorsque j'utilise plusieurs instances du même formulaire Web. Pourriez-vous s'il vous plaît laissez-moi savoir comment je pourrais quelles variables autres que partagées je peux utiliser pour atteindre ce but?quelle variable je peux utiliser au lieu de partagé?

Public strRoleType As String = String.Empty 
Protected Shared isAreaSelected As Integer = 0 
Protected Shared isStoreSelected As Integer = 0 
Protected Shared isHeadOfficeSelected As Integer = 0 
Protected Shared isRegionSelected As Integer = 0 
+1

Je suis désolé mais je ne comprends pas votre question. Pouvez-vous expliquer un peu mieux quel est le problème et/ou ce que vous aimeriez accomplir. – Rhapsody

+0

Vous ne devriez pas utiliser les variables partagées dans ASP.NET comme ceci (si c'est par utilisateur) car cela affectera toute l'application. Qu'est-ce que vous essayez de faire exactement? – keyboardP

+0

J'ai eu un problème de conflit de session dans mon formulaire Web, donc j'ai changé toutes les variables de session en variables partagées .. c'est toujours encore un problème .. ce que vous suggérez comme une alternative? – SmartestVEGA

Répondre

1

Il suffit de supprimer Shared et tout devrait bien se passer.

+0

non ... quand j'ai enlevé partagé .le le formulaire ne fonctionne pas comme prévu – SmartestVEGA

+0

S'il vous plaît consulter le lien .. c'est le problème exact que je suis confronté: http://stackoverflow.com/questions/2514534/guessess-of-my-session-value-conflicts – SmartestVEGA

+2

J'ai lu votre Je pense que vous êtes très, très confus sur la façon dont ASP.NET fonctionne lorsque plusieurs personnes regardent le site en même temps. Je ne comprends pas pourquoi vous utilisez une combinaison de variables de page et de variables de session, et puisque votre application ne comporte qu'un seul .aspx, les variables de page sont très appropriées (sinon utilisez des variables de session). C'est-à-dire, utilisez l'un ou l'autre et vous n'avez pas besoin d'être «partagé» dans votre application. –

0

C'est beaucoup de travail, mais il crée le stockage de niveau de forme

Pour chacune de vos variables partagées convertir en une propriété sur le formulaire Web. Puis stocker les valeurs dans le ViewState

'default to 0 if blank, else convert to int 
Public Property IsAreaSelected() As Integer 
    Get 
        Return If(ViewState("IsAreaSelected") Is Nothing, 0, Cint(ViewState("IsAreaSelected"))) 
    End Get 
    Set(ByVal value As Integer) 
        ViewState("IsAreaSelected") = value 
    End Set 
End Property 

De cette façon, les valeurs restent avec la page.

Veuillez noter que je l'ai codé à la volée et non en VS, donc vous devrez peut-être le modifier.