IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#]Problème de Viewstate


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 58
    Par défaut [C#]Problème de Viewstate
    Salut a tous.
    Voila j'ai un problème avec le ViewState
    En fait j'ai un WebForm dans lequel figure un Panel. Dans Page_Load, j'ai la programmation permettant de charger un UserContol dans le Panel. La sélection du bon Panel à afficher ce fait via le test d'ue variable de session (Session["uc"]).

    Le problème est que ce chargement ne fonctionne que si je mets le EnableViewState à "false".

    Sinon j'obtiens l'erreur suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Échec du chargement de viewstate. L'arborescence du contrôle sur lequel viewstate est chargé doit correspondre à l'arborescence du contrôle qui a été utilisé pour enregistrer viewstate lors de la demande précédente. Par exemple, lors de l'ajout dynamique de contrôle, les contrôles ajoutés lors d'une publication doivent correspondre au type et à la position des contrôles ajoutés lors de la demande initiale.
    Je vous mets le code pour le chargement d'un UserControl

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    				if(Session["uc"]!=null)
    				{
    					switch(Session["uc"].ToString())
    					{
    						case"clients":
    						{
    							pan.Controls.Clear();
    							UserControl uc = (UserControl)LoadControl("uc_clients.ascx");
    							uc.ID = "clients";
    							pan.Controls.Add(uc);break;
    						}
    :
    :
    :
    Voila je ne sais pas si j'ai été assez clair
    Merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Par défaut
    Salut,

    Le chargement du viewstate se fait avant le Page_Load, donc si tu charges ton controle dynamique aprés (ou dans) le Page_load c'est trop tard, tu as droit à cette erreur. Bon endroit pour charger ton controle : l'init de ta page ou de ton controle.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 58
    Par défaut
    Saurais-tu être plus précis par rapport à l'endroit où mettre le chargement de l'UserControl?
    Merci

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Par défaut
    Tu peux t'abonner à l'evenement Init de ta page et créer ton controle à ce moment là, ou bien surcharger la méthode OnInit de ta page.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/04/2013, 17h14
  2. Problème de ViewState
    Par krovomi dans le forum ASP.NET
    Réponses: 1
    Dernier message: 02/12/2010, 11h13
  3. Réponses: 6
    Dernier message: 06/02/2008, 08h57
  4. [C#]table dynamique problème de viewstate
    Par nicorem dans le forum ASP.NET
    Réponses: 3
    Dernier message: 15/12/2006, 15h52
  5. [vb.net] problème de viewstate
    Par lucie.houel dans le forum ASP.NET
    Réponses: 6
    Dernier message: 08/09/2005, 17h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo