Problème de viewState [C# et VB .net] - C#/.NET managed - Programmation
Marsh Posté le 13-07-2006 à 13:43:11
Normal.
Ton Label est un WebControl, dont la valeur est automatiquement (merci ASP.Net) maintenu avec le ViewState.
La valeur de ta string (à ce propos, veut mieux dire "champ" que "attribut" de classe : attribut en .Net c'est autre chose), n'est pas maintenue.
Le principe d'une appli web, c'est que tout est détruit et reconstruit à chaque aller/retour serveur. Donc quand ASP.Net recréé ton objet, il ne peut pas se souvenir de la valeur de ta chaine.
Solution 1 : mettre le chargement de ta chaine hors du bloc if(!this.IsPostBack)
Solution 2 : maintenir ta chaine dans le ViewState :
Code :
|
Marsh Posté le 13-07-2006 à 18:39:37
ou passer par des variables de session, c'est encore mieux.
Session["nomvariablesession"] = "blablabliblibblublu";
et pour récupérer au prochain passage
string ch = Session["nomvariablesession"];
ou nomvariablesession peut être n'importe quoi
Marsh Posté le 13-07-2006 à 19:20:09
Question de philosophie... et d'environnement !
Je n'ai jamais vu l'utilisation du ViewState bloquée en contexte professionnel, alors que les Session assez souvent
Mais bon.. tant que ça marche.
Marsh Posté le 13-07-2006 à 11:44:58
Bonjour,
Voilà j'ai un souci qui m'est apparu
C'est vraiment simple mais ça ne marche pas.
J'ai un control ascx sur lequel j'ai un label et un bouton.
Le text de ce label est défini dans le code behind dans Page_Load si !ispostback
Quand je click sur mon bouton je récupère le onClick (je ne fais rien dedans (c'est pour l'exemple))
jusque là tout va bien le label garde son text meme si la page est reload
Ensuite j'ajoute un attribut de class. de type String.
Je le value tout comme mon label dans le Page load si !ispostback
Par contre lorsque je click sur le bouton, la valeur que j'avai affecté à ce string disparait !
Je me retrouve dans l'évènement onClick avec un string vide.
Je ne comprend pas du tout
Merci de votre aide