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 :

[VS2010 Framework 4] Conserver des controls créés dynamiquement après un postback


Sujet :

ASP.NET

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Points : 192
    Points
    192
    Par défaut [VS2010 Framework 4] Conserver des controls créés dynamiquement après un postback
    Bonjour,
    tout est dit dans le titre :-)

    Dans ma page asp.net, sur le clique d'un radiobutton, je faît apparaître un petit panel qui contient un certainement nombre de checkbox, créés dynamiquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //Génération dynamiques des checkbox
                    for (int i = 0; i < ds.Tables["groupe"].Rows.Count; i++)
                    {
                        CheckBox chkbxAjoutGroupe = new CheckBox();
                        chkbxAjoutGroupe.Text = ds.Tables["groupe"].Rows[i]["nomGroupe"].ToString();
                        chkbxAjoutGroupe.ID = "chkbxAjoutGroupe" + i;
                        panelAjoutGroupe.Controls.Add(chkbxAjoutGroupe);
                    }
    panelAjoutGroupe.Visible=true;
    Malheureusement, j'ai beaucoup de contrôles sur ma page et certains font des postback. A chaque fois qu'un postback est appelé, évidemment mes contrôles créés dynamiquement ci-dessus disparaissent puisqu'ils ne sont pas créé dans le On_Load()...

    Est-ce que quelqu'un peut m'éclairer sur les possibles solutions pour régler ce problème ?

    Merciiii !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Points : 74
    Points
    74
    Par défaut
    Pourquoi est-ce que tu ne les créé pas au démarrage et les met a visible = false et des que tu veux les faire apparaitre tu les rend visible?

    Au pire tu peux peut etre aussi essayer avec les updatepanel mais pas sur que cela fonctionne

  3. #3
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Points : 192
    Points
    192
    Par défaut
    En fait le nombre de checkbox et leur texte dépend de la valeur d'un dropdown list de ma page. Donc je ne peux pas créer ces checkbox avant que l'utilisateur ait choisi une valeur.

    J'ai trouvé un composant qui permet de conserver l'état des contrôles créés dynamiquement sur un postback, mais j'aimerais quand même trouver une solution plus légère que de devoir installer un nouveau composant...
    http://www.denisbauer.com/ASPNETCont...aceholder.aspx

  4. #4
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Bonjour,

    Ce problème n'a rien à voir avec la version 4.0 d'ASP.NET ou Visual Studio 2010. Il concerne simplement le cycle de vie des contrôles au sein d'une page ASP.NET.

    Tu n'as pas vraiment le choix, si tu souhaites garder tes contrôles, tu dois les recréer à chaque fois.

    Ce sujet ayant été maintes fois abordés sur le présent forum (et au cours des dernières semaines), je t'invite à faire une recherche pour voir les solutions proposées.

    A défaut, une petite recherche google (ou dans les cours Developpez) sur un tutoriel pour la création dynamique de contrôles en ASP.NET.

    En espérant t'avoir aidé.

  5. #5
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Points : 192
    Points
    192
    Par défaut
    Hello Nicolas,

    Ce problème n'a rien à voir avec la version 4.0 d'ASP.NET ou Visual Studio 2010. Il concerne simplement le cycle de vie des contrôles au sein d'une page ASP.NET.
    Wi je sais, mais comme je débarque sur VS2010 et .Net 4, je me disais que ptêtre y'avait un nouveau composant qui permettait de gérer tout ça.

    Ce sujet ayant été maintes fois abordés sur le présent forum (et au cours des dernières semaines), je t'invite à faire une recherche pour voir les solutions proposées.
    J'en ai fait des recherches. Et effectivement les sujets sont nombreux mais la plupart proposent de créer les contrôles dynamiques dans le Page_Load ce qui dans mon cas n'est pas faisable (même si à mon avis je vais devoir partir sur cette piste et jouer avec des variables de session qui me diront à chaque page_load si je dois m'occuper de créer ces contrôles dynamiques, de les masquer ou pas,...)

    A défaut, une petite recherche google (ou dans les cours Developpez) sur un tutoriel pour la création dynamique de contrôles en ASP.NET.
    Je connais plus ou moins le principe de la création dynamique, le problème étant de conserver ces éléments créés dynamiquement :-) et justement Google m'a ammené sur ce composant qui gère le postback sur les contrôles créés dynamiquement (http://www.denisbauer.com/ASPNETCont...aceholder.aspx), mais j'aimerais éviter de l'utiliser.
    Et sinon Google m'a aussi ammené sur ce forum :-)

    En espérant t'avoir aidé.
    Merci pour ton aide

  6. #6
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Bonjour,

    Pour faire plus simple, je t'invite à lire cet article de Nico-pyright(c) :Comprendre la création de contrôles ASP.NET et leur cycle de vie en C#.

    En espérant t'avoir aidé.

  7. #7
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Points : 192
    Points
    192
    Par défaut
    Merci pour ce lien très riche en informations !

    Donc effectivement, dans mon OnLoad je vais devoir m'occuper de créer à chaque postback mes contrôles dynamiquement, selon les infos que l'utilisateur est en train de choisir.

    Merci pour tout

    Je considère le sujet résolu (du moins pour l'instant :-))

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

Discussions similaires

  1. Utiliser des controls créés dynamiquement
    Par abonnefoy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 29/11/2010, 21h56
  2. Récupérer les valeurs des champs créés dynamiquement
    Par outlawz dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/05/2006, 16h32
  3. Réponses: 9
    Dernier message: 28/10/2005, 13h48
  4. problème d'accès a des éléments créés dynamiquement
    Par Pymm dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/07/2005, 17h13
  5. Erreur EACCESSVIOLATION avec des compsts créés dynamiquement
    Par tsikpemoise dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/02/2004, 19h05

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