COMMENT CONSERVER L'ÉTAT D'UNE VARIABLE (SESSION ET VIEWSTATE)

cs_arcollet Messages postés 31 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 13 avril 2008 - 27 juil. 2004 à 00:38
cs_jmclej Messages postés 6 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 18 octobre 2023 - 28 avril 2009 à 12:53
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/24838-comment-conserver-l-etat-d-une-variable-session-et-viewstate

cs_jmclej Messages postés 6 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 18 octobre 2023
28 avril 2009 à 12:53
Bonjour,
En rapport avec cet article, est-ce que vous savez comment accéder du côté client, en javascript donc, à une variable que l'on aura placé dans le viewstate ou en session, après de multiples postback?
D'avance merci,
Julien
snopims Messages postés 2 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 12 novembre 2008
12 nov. 2008 à 23:49
Perso j'utilise plutot un champs caché.
Car si tu programme un composant avec ta méthode.
Et si dans ta page tu utilises 2 fois le composant, n'y a t'il pas un problème de conflit (Les deux instances sur la même variable) ?
On peut sans doute éviter cela en préfixant les variables avec l'id de l'instance du composant.
cs_arcollet Messages postés 31 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 13 avril 2008
16 nov. 2007 à 09:58
Bonjour,
Ok tu as exposé 2 méthodes (viewstate et session), j'utilise personnellement la session mais comme tu le précises c'est parfois pénible surtout si l'application est truffée de variables de session, ce qui est mon cas. Il y a une 3ème méthode, celle qui utilise SQL Server pour y stocker les variables de session, mais j'ai des difficulté à la mettre en place. Peux tu m'aider ?
Merci
Denis
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
15 nov. 2007 à 23:48
Sérializer un DataSet dans un viewstate ? Mouais ca doit être possible mais ca va etre super lourd ! donc autant le mettre dans la session.
balbicio Messages postés 3 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 14 octobre 2008
15 nov. 2007 à 13:13
Bonjour,

Est ce que la solution basée sur les ViewStates est valable dans le cas d'un objet de type DataSet?
Egalement qui est la meilleur solution dans ce cas? les ViewStates ou bien l'objet Session ??

Merci
TOTOCHITO Messages postés 63 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 16 novembre 2007
23 avril 2007 à 11:28
Oui en effet tu as entièrement raison
Mais mon probleme en fait ne vient pas de la, lorsque sur l'évenement d'un bouton click je veux récupérer les valeurs d'un listbox lié à une source (sqldatasource), je peux récupérer sa valeur sélectionnée dans l'evenement click, en revanche, lorsque cette liste est charger par un datareader dynamiquement dans une fonction, les données ne persistent plus et les listes se vident.
as tu déja eu ce probleme ?
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
23 avril 2007 à 10:54
Bonjour,

ASP.net s'execute coté serveur, lorsque tu fais une requete HTTP, ASP.net n'a "aucun" moyen de savoir si c'est ta premiere requete ou non, pour cela il refait entierement le cycle de vie de la page, c'est donc tout à fait normal qu'il passe par le page_load. Pour savoir si ta requete via d'une action de l'utilisateur (postback) tu as la propriété Page.IsPostBack qui te retourne true lors d'un postback, par exemple lors d'un click sur un bouton.
TOTOCHITO Messages postés 63 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 16 novembre 2007
23 avril 2007 à 10:08
j'ai une petite question j'ai une page aspx contenu dans un content place holder, et je souhaiterais sauver 2 valeurs de listbox afin de filtrer un gridview. Sur l'évènement click d'un bouton j'ai donc pour sauvegarder mes 2 variables :
Me.ViewState("mavariable") = lst_gamme.Text
Me.ViewState("mavariable2") = lst_produit.Text

le probleme est qu'il repasse par le load de la page avant d'executer le code de l'évènement click et donc retour a la case départ, puisque les variables sélectionnées, ne sont plus la.

Pourquoi le code n'execute pas l'évenement du bouton avant de recharger la page ?
Aurais tu une idée ?
maximemonny Messages postés 11 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 11 mai 2005
11 mai 2005 à 15:21
Et déclarer des varaibles publiques dans un module créé spécialement pour ? C'est pas plus simple?
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
26 août 2004 à 13:52
oui d'ecrire CType(session("MaVariable"), Integer) sert a qqchose, dans le cas d'un integer la conversion sera fait implicitement pas Visual Basic, mais ce n'est pas le cas de
C# et la deuxieme raison, est que si tu as un objet complexe au lieu d'un integer, VB ne te feras pas la conversion implicitement
cs_arcollet Messages postés 31 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 13 avril 2008
27 juil. 2004 à 00:38
Bonjour,

J'ai une petite question toute bête qui me tracasse :

Y a til un gain (performance, autre) à écrire :

"Return CType(session("MaVariable"), Integer)"

plutôt que

Return session("MaVariable")

Merci

Denis