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 :

restaurer viewstate par un objet en session


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 16
    Points : 14
    Points
    14
    Par défaut restaurer viewstate par un objet en session
    Bonjour tout le monde,

    J'essaye de mettre le viewstate d'un usercontrol en session afin que, lors de la navigation, si l'on revient sur la page ou était placé ce usercontrol, on retrouve les données précédemment saisies.

    je pense avoir réussi à sauvegarder le viewsate en session :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    /* Evenement décleché après après que l'état de page ait été enregistré. */ 
    protected void Page_SaveStateComplete(EventArgs e)
    {
         Session["MoteurRecherche"] = ViewState;
    }
    Par contre pour le récupérer au chargement, je bloque.

    Toute suggestion est la bienvenue.

  2. #2
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Le Viewstate est restauré dans l'événement LoadViewstate de la page.. peut-être que là tu peux le récupérer...
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Je pensais à un truc comme ça, mais LoadViewState est une méthode, j'ai bien essayé de la surcharger :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    protected override void LoadViewState(object savedState)
        {
            object sb = Session["MoteurRecherche"];
            if (sb != null)
            {
                savedState = sb;
            }
            base.LoadViewState(savedState);
        }
    mais ça passe pas non plus.

    D'ailleurs je viens de me rendre compte que je ne passe même pas dans mon evenement "Page_SaveStateComplete"....
    Pourtant le Page_load est bien exécuté

  4. #4
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Arf.. en effet... il ne passe dans le LoadViewState que lors d'un PostBack..
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Fort possible ce que tu dis Pongten, c'est dans mon usercontrol que je voulais appeler loadviewstate j'ai pas testé sur une page.

    De toute façon j'ai laissé tomber cette approche, a la place je parcours les controles de mon usercontrol, si ce sont des textbox ou listbox je les mets dans un hahstable que je met ensuite en session :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Hashtable test = new Hashtable();
    foreach(Control c in this.Controls)
            {
                if (c is TextBox)
                {
                    TextBox cc=(TextBox)c;
                    test.Add(cc.UniqueID, cc.Text);
                }
                else if (c is ListBox)
                {
                    ListBox cc = (ListBox)c;
                    test.Add(cc.UniqueID, cc.SelectedValue);
                }
            }
            Session["MoteurRecherche"] = test;
    il reste plus qu'a tester si on a ce hashtable en session quand on charge le usercontrol, et si oui à réaffecter les bonnes valeurs aux controles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     Hashtable valeurs = (Hashtable)Session["MoteurRecherche"];
            if (valeurs != null)
            {
                TB_les_mots.Text = (string)valeurs[TB_les_mots.UniqueID];
                TB_phrase.Text = (string)valeurs[TB_phrase.UniqueID];
                compteur.Value = (string)valeurs[compteur.UniqueID];
            }
    Merci quand meme de t'être interessé et

  6. #6
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Avec plaisir :-)
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/06/2013, 10h29
  2. Réponses: 16
    Dernier message: 06/06/2007, 12h42
  3. [JVM]Espace mémoire occupé par un objet
    Par devtele dans le forum Général Java
    Réponses: 6
    Dernier message: 29/12/2005, 23h15
  4. Réponses: 3
    Dernier message: 30/09/2005, 22h48
  5. Expliciter une exception levée par un objet OLE
    Par Bleuarff dans le forum Windows
    Réponses: 3
    Dernier message: 12/05/2005, 16h10

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