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 :

DropDownLists dynamique SelectedValue


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 51
    Par défaut DropDownLists dynamique SelectedValue
    Bonjour à vous !

    Je poste ce message dans la detress la plus total un vendredi à 14, alors que le projet devrait être finit depuis 11h... enfin ça vous vous en foutez sans doute ^^.

    Si quelqu'un avait la bonté de m'expliquer pourquoi lorsque je créer des DropDownList dynamiquement par le code behind de cette manière dans une gridview :

    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
    17
    18
    19
    20
    21
     
    // Affichage correspond ) la GridView, ddl est passé en paramètre de la fonction
        try
            {
                for (int i = 0; i < Affichage.Rows.Count; i++)
                {
                    DropDownList DdlAjout = new DropDownList();
                    for (int j = 0; j < ddl.Items.Count; j++)
                    {   
                        DdlAjout.Items.Add(ddl.Items[j]);
                        if (DdlAjout.Items[j].Text == Affichage.Rows[i].Cells[3].Text)
                            DdlAjout.SelectedValue = Affichage.Rows[i].Cells[3].Text;
                    }
                    Affichage.Rows[i].Cells[6].Controls.Add(DdlAjout);
                    DdlAjout.ID = "DdlHier" + i; DdlAjout.EnableViewState = true; DdlAjout.Visible = true;
                    DdlAjout.Dispose();
                }
            }
            catch 
            {
             }
    Hey bien la valeur de toutes mes dropdownlist que je place dans ma gridview prennent la valeur de la dernière ligne de ma gridview (enfin en gros elle prenne pas la valeur qui est sur leur ligne, mais celle de la dernière ligne, alors qu'il ne me semble pas leur demander ça).

    Ha oui je suis sûr que la valeur de la ligne est dans la gridview hein, la question n'est pas à poser.

    Je ne trouve pas comment m'en sortir... :s

    Bonne après midi à vous !!! Et merci d'avance pour une réponse ou une idée^^.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 51
    Par défaut
    C'est encore moi,

    Alors voilà, le message d'erreur de la pile est le suivant lorsque j'execute le code ci-dessus :

    "Plusieurs éléments ne peuvent pas être sélectionnés dans une DropDownList."
    Je le conçois totalement, j'imagine donc que mon problème est lié à la DropDownList qui pour le compilateur reste la même malgré le fait que je la redéclare et que je la dispose. Enfin bref je cherche .

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Salut,

    Si je ne me trompe pas en fait toutes tes lignes de gridVeiw font référence à la meme dropDown.

    Pour eviter ca essaie de mettre après ton Dispose():

  4. #4
    Membre chevronné
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Par défaut
    Au lieu de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DdlAjout.Items.Add(ddl.Items[j]);
    essaie


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DdlAjout.Items.Add(new ListItem(ddl.Items[j].Text, ddl.Items[j].Value));
    En fait l'élément ListItem à une valeur booléene selected. Tu ajoute le même item dans plusieurs DropDownList. Lorsque, sur la dernière dropdownList tu positionne le selected Value, alors tous la propriété selected de l'objet ListItem se positionne à true, et ce pour toutes les listes, car ton ListItem est manipulé par référence.

    Enfin c a testé...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 51
    Par défaut
    J'ai trouvé une solution, un peu compliqué je l'avoue ^^

    oyigit j'ai testé cela fonctionne, si quelqu'un avait le même problème un jour, autant prendre la solution simplifiée.

    Merci à vous.

    Bon courage.

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

Discussions similaires

  1. Ajouter une ligne statique a une DropDownList dynamique
    Par arnogb69 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 02/08/2007, 17h56
  2. Réponses: 2
    Dernier message: 01/08/2007, 22h39
  3. Réponses: 5
    Dernier message: 22/08/2006, 20h38
  4. Réponses: 3
    Dernier message: 20/06/2006, 09h07
  5. Régénérer des dropdownlist dynamiques
    Par torper dans le forum ASP
    Réponses: 2
    Dernier message: 25/04/2006, 15h49

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