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 :

Récupérer changements sur UserControl lors d'un postback


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Par défaut Récupérer changements sur UserControl lors d'un postback
    Bonjour à tous,

    J'ai une webpart qui contient un usercontrol qui lui même contient 3 tabs qui héritent de userControl.

    Ces Tabs sont chargés dynamiquement lors du PageLoad de la webPart :

    Lors du LoadData() chaque tab est sauvegardé dans une propriété List<Tabs> _controls

    lors d'un postBack je veux récupérer les modifications je fais donc cette opération :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var tabs = monUserControl as Tabs;
    tabs.saveData();
    Mon problème est que dans saveData() mon champ _controls est toujours = null !!!

    Je suis bloqué depuis 4 jours déjà ! alors est ce que quelqu'un aurait une solution ?

    Merci d'avance pour votre aide

  2. #2
    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
    Quand tu fais un postback, tu crées une nouvelles instance de ta page et donc ta variable _controls est réinitialisée.
    Tu dois la sauvegarder dans un endroit ou tu pourras la récupérer plus tard (viewstate, session, DB ou autre)

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur ASP.Net - disponible pour des missions
    Inscrit en
    Septembre 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur ASP.Net - disponible pour des missions

    Informations forums :
    Inscription : Septembre 2008
    Messages : 151
    Par défaut
    Bonjour,

    si c'est ton pb c'est de récupérer les contrôles dynamiques aprés un postback alors il faut les créer dans le OnInit de la page, pas dans le FormLoad

    ensuite dans ton formload tu vas retrouver les contrôles avec les modifs

    aprés l'utilité de les conserver en session ou autre n'a pas d'interet sauf si tu as un besoin particulier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            ... ici tu crées les contrôles
         }
     
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
               ... ici tu peux interroger tes contrôles
        }
    Cordialement

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Par défaut
    Bonjour lutecefalco,

    Merci pour ton retour rapide,

    j'ai en fait pensé à sauvegarder _controls dans le cache, et je l'ai fait.
    Sauf que l'enregistrement se fait lors du 1er chargement de la page ce qui signifie que _controls ne contient pas les valeurs modifiées (par le client)

    y a t-il un moyen de sauvegarder _controls avec les modifications du client ?

    Merci

  5. #5
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Par défaut
    Citation Envoyé par vhoward99 Voir le message
    Bonjour,

    si c'est ton pb c'est de récupérer les contrôles dynamiques aprés un postback alors il faut les créer dans le OnInit de la page, pas dans le FormLoad

    ensuite dans ton formload tu vas retrouver les contrôles avec les modifs

    aprés l'utilité de les conserver en session ou autre n'a pas d'interet sauf si tu as un besoin particulier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            ... ici tu crées les contrôles
         }
     
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
               ... ici tu peux interroger tes contrôles
        }
    Cordialement
    J'ai enlevé le chargement dynamique de la page principale et je le fais dans le OnInit du UserControl (Tabs)

    Comme ça j'arrive bien à garder les valeurs modifiés des contrôles.

    Merci pour votre aide, vous m'avez bien éclairé

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

Discussions similaires

  1. Changement du clavier lors d'un Click sur jTextField
    Par sarra02 dans le forum Général Java
    Réponses: 3
    Dernier message: 04/03/2015, 08h51
  2. Réponses: 11
    Dernier message: 26/04/2009, 19h02
  3. Réponses: 20
    Dernier message: 12/06/2007, 10h11
  4. Changement de style lors du focus sur une cellule
    Par zyg dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 23/12/2005, 10h29
  5. Réponses: 2
    Dernier message: 19/04/2005, 11h27

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