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 :

Perte de données à chaque rafraichissement d'un UserControl


Sujet :

ASP.NET

  1. #1
    Membre éclairé Avatar de MicaelFelix
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 254
    Par défaut Perte de données à chaque rafraichissement d'un UserControl
    Bonjour,

    Voici mon problème : j'ai un UserControl dans un UpdatePanel (ajax), et cet UpdatePanel est dans une page MaPage.aspx. Tout ça au niveau du code, ça donne dans MaPage.aspx quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <asp:UpdatePanel ID="updatePanel_Gallery" runat="server">
        <ContentTemplate>
             <UC:Gallery id="imageGallery1" runat="server"></UC:Gallery>
         </ContentTemplate>
    </asp:UpdatePanel>
    Dans le Page.Init de MaPage.aspx j'appelle une méthode de imageGallery1 qui m'initialise un tableau et le charge de valeurs.

    Seulement, dès qu'on clique dans un lien dans ce contrôle, je me suis aperçu que toutes les variables d'instances de ce contrôle sont "perdues", bref mon tableau est à Nothing et donc... ça plante.

    Est-ce que les variables d'instance d'un UserControl sont perdues à chaque changement d'état de la page (clic ou autre)?
    Doit on stocker tout ce qui est dynamique dans la session ?
    J'avoue que je ne sais pas jusqu'à quel point ASP.Net va sauvegarder les informations en cours sur la page, car je sais que leur gestion du PostBack fait que certaines données sont sauvegardées même lors du rafraichissement de toute la page, mais est-ce que ça s'applique aussi aux variables d'instances?

    Désolé pour la question bête, mais il fallait que je la pose

    À bientôt,

    Micaël

  2. #2
    Membre éclairé Avatar de MicaelFelix
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 254
    Par défaut
    Hum... je crois avoir surestimé ASP.Net, à ce que je viens de trouver sur internet, on dirait que tout ce qui est variable d'instance est "oublié" à chaque nouvelle requête, je me faisais donc de fausses idées on dirait

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Tu peux enregistrer ces données dans le ViewState du contrôle pour qu'elles ne soient pas perdues
    Je connais pas très bien ASP.NET, donc je suis pas la meilleure personne pour t'expliquer çà, mais tu devrais trouver des infos là-dessus dans les tutoriels

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par MicaelFelix Voir le message
    Hum... je crois avoir surestimé ASP.Net, à ce que je viens de trouver sur internet, on dirait que tout ce qui est variable d'instance est "oublié" à chaque nouvelle requête, je me faisais donc de fausses idées on dirait
    A chaque postback, une nouvelle instance est créée.
    Donc oui par défaut tu perds tes variables.

    1- Tu recrées ton control à chaque fois
    2- Tu sauvegardes ce dont t'as besoin dans le ViewState et t'y accèdes quand t'en as besoin

    Sinon, je te conseille de te renseigner sur le fonctionnement d'ASP NET. Ca t'éviteras de te faire de fausses idées

  5. #5
    Membre éclairé Avatar de MicaelFelix
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 254
    Par défaut
    Merci pour vos réponses.
    En fait je pensais (avec quelques doutes ) qu'ASP.Net avait peut un système pour gérer les états de toutes les pages, car c'est fait partiellement lorsqu'on fait un postback avec des champs <asp:TextBox> par exemple.
    En tous cas c'est bon, avec le ViewState et les informations que j'ai trouvé, ça ne me posera plus problème.
    Merci pour votre aide!

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

Discussions similaires

  1. [WD-2010] Perte des données à chaque réouverture de document
    Par canary dans le forum VBA Word
    Réponses: 36
    Dernier message: 04/02/2013, 15h08
  2. Réponses: 1
    Dernier message: 25/05/2012, 08h57
  3. Perte de données Firebird
    Par jeanafond dans le forum Débuter
    Réponses: 8
    Dernier message: 19/05/2005, 10h21
  4. Crash InnoDB,perte de données définitives... Info ou Intox ?
    Par Alexandre T dans le forum Administration
    Réponses: 3
    Dernier message: 17/01/2005, 10h44
  5. [JTable] Perte des données
    Par david71 dans le forum Composants
    Réponses: 8
    Dernier message: 09/01/2005, 00h37

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