COMMENT CONSERVER L'ÉTAT D'UNE VARIABLE (SESSION ET VIEWSTATE)
cs_arcollet
Messages postés31Date d'inscriptionjeudi 12 juin 2003StatutMembreDernière intervention13 avril 2008
-
27 juil. 2004 à 00:38
cs_jmclej
Messages postés6Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention18 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.
cs_jmclej
Messages postés6Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention18 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és2Date d'inscriptionjeudi 4 septembre 2008StatutMembreDernière intervention12 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és31Date d'inscriptionjeudi 12 juin 2003StatutMembreDernière intervention13 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és6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 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és3Date d'inscriptionjeudi 24 juin 2004StatutMembreDernière intervention14 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és63Date d'inscriptionlundi 13 septembre 2004StatutMembreDernière intervention16 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és6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 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és63Date d'inscriptionlundi 13 septembre 2004StatutMembreDernière intervention16 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és11Date d'inscriptionlundi 2 mai 2005StatutMembreDernière intervention11 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és6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 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és31Date d'inscriptionjeudi 12 juin 2003StatutMembreDernière intervention13 avril 2008 27 juil. 2004 à 00:38
Bonjour,
J'ai une petite question toute bête qui me tracasse :
28 avril 2009 à 12:53
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
12 nov. 2008 à 23:49
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.
16 nov. 2007 à 09:58
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
15 nov. 2007 à 23:48
15 nov. 2007 à 13:13
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
23 avril 2007 à 11:28
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 ?
23 avril 2007 à 10:54
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.
23 avril 2007 à 10:08
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 ?
11 mai 2005 à 15:21
26 août 2004 à 13:52
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
27 juil. 2004 à 00:38
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