Viewstate

Signaler
Messages postés
3
Date d'inscription
jeudi 13 novembre 2008
Statut
Membre
Dernière intervention
16 décembre 2008
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
Bonjour,

c'est quoi la difference entre session et viewstate (avec un petit exemple )

Merci d'avance

2 réponses

Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
21 juillet 2010
1
Bonsoir,

En gros, le viewstate est ce qui permet de conserver les changements dans l'état des contrôles d'une même page asp au fil des postback.
A chaque fois que ta page est appelée se produit un premier événément, l'instantiation, qui crée la hiérarchie des contrôles déclarés statiquement en leur donnant leur état initial. Ensuite a lieu l'initiatialisation (événément auquel tu as accès avec on_init), puis le chargement de viewstate, qui va restaurer dans tes contrôles les changements apportés.
La session n'a pas grand rapport avec cela : le viewstate concerne une page et une seule. Les informations de session, en revanche, sont des infos que tu stockes sur une personne qui consulte ton site, pour la durée de sa visiste : ces informations sont gardées seulement un certain temps et peuvent être récupérées sur n'importe quelle page du site.
Un exemple. Suppose qu'un utilisateur fasse un choix dans un dropdownlist, choix qui affiche tel ou tel résultat dans un autre contrôle de la même page. Si l'utilisateur fait d'autres manipulations, sur la même page, qui déclenchent des postback, le choix fait dans la dropdownlist va se conserver (si l'utilisateur ne le change pas).
Mais si l'utilisateur va sur une autre page de ton site, le choix qu'il a opéré dans la dropdownlist sera évidemment perdu. Cependant, tu peux éventuellement stocker ce choix dans une variable session (par ex. session("kiki")=dropdownlist1.selectedvalue). Dans ce cas, tu pourras récupérer cette variable sur les autres pages durant la durée de la session (celle-ci dure par défaut 30 min. je crois, et est interrompue si l'utilisateur ferme son navigateur).
Il s'agit donc de deux choses assez différentes.

GGtry
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
23
celle-ci dure par défaut 30 min. je crois, et est interrompue si l'utilisateur ferme son navigateur >>
Non, la session dure 20 minutes de plus que la derniere requête de l'utilisateur. Elle ne se ferme pas quand on ferme le navigateur mais seulement si on fait un Session.Close ou si elle a expiré (par défaut 20 min après la derniere requete)

<hr />Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant