Viewstate

okNotok Messages postés 3 Date d'inscription jeudi 13 novembre 2008 Statut Membre Dernière intervention 16 décembre 2008 - 17 nov. 2008 à 15:50
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 18 nov. 2008 à 12:29
Bonjour,

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

Merci d'avance

2 réponses

ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
17 nov. 2008 à 22:54
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
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
18 nov. 2008 à 12:29
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
0
Rejoignez-nous