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

VB.NET Discussion :

asp:DropDownList, problème de doublons dans son contenu


Sujet :

VB.NET

  1. #1
    Membre régulier Avatar de Stephane_br
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Points : 83
    Points
    83
    Par défaut asp:DropDownList, problème de doublons dans son contenu
    Bonjour,

    je m'arrache les cheveux depuis un moment sur un petit problème que je n'arrive pas à comprendre.

    J'ai une chaîne de caractère qui contient des ";" afin de séparer des noms de couleurs.
    Mon but est d'afficher sur mon site web une liste déroulante proposant chacune de ces couleurs afin que l'internaute puisse en choisir une.

    Pour cela, j'utilise la fonction split qui fonctionne très bien et je décide d'ajouter chacune des couleurs dans un dropdownlist.

    Résultat, pas de souci lorsque je vérifie le résultat de la fonction split qui m'a bien déterminé chaque couleurs distinctes. Par contre, dès que je souhaite remplir mon dropdownlist avec ces couleurs, il me les mets en double. Grrrrr !!

    Voici mon code (vb.net) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                        Dim strChaineColoris As String = "Rouge;vert;Bleu;Orange"
                        If strChaineColoris <> "" Then
                            Dim strAllItems1 As String() = strChaineColoris.Split(New Char() {";"c})
                            Dim strItem As String
                            For Each strItem In strAllItems1
                                Dim RadItem1 As New ListItem
                                RadItem1.Text = LCase(strItem)
                                RadItem1.Value = strItem
                                ChoixListeColoris.Items.Add(RadItem1)
                                RadItem1 = Nothing
                            Next
                        End If
    J'obtient une liste déroulante avec ceci dedans (pas bon !) :

    Rouge
    vert
    Bleu
    orange
    Rouge
    vert
    Bleu
    orange



    Or, si j'enlève mon code en rouge et que j'affiche pas à pas à l'écran le contenu de strItem, j'obtient bien la liste correcte suivante :

    Rouge
    vert
    Bleu
    orange


    Donc d'où vient mon problème ?
    je ne vois pas là

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2010
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 151
    Points : 254
    Points
    254
    Par défaut
    Bonjour,

    As-tu besoin de ne l'afficher qu'en minuscule ?

    car sinon tu peux essayer avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim strChaineColoris As String = "Rouge;vert;Bleu;Orange"
                        If strChaineColoris <> "" Then
                            Dim strAllItems1 As String() = strChaineColoris.Split(New Char() {";"c})
                            Dim strItem As String
                            For Each strItem In strAllItems1
                                ChoixListeColoris.Items.Add(strItem)
                            Next
                        End If
    Quel contrôle utilises-tu ? car moi sur VB Express 2010, je n'ai pas de contrôle DropDownList, et il ne me reconnait pas ListItem.

    Ce qui est étrange aussi, c'est que même sans ton code rouge tu ais des éléments dans ton ChoixListeColoris.

    Tu peux essayer de mettre avant ton for each un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChoixListeColoris.Items.Clear()
    En espérant avoir pu t'aider,

    @+
    Mat

  3. #3
    Membre régulier Avatar de Stephane_br
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Points : 83
    Points
    83
    Par défaut
    Citation Envoyé par matll Voir le message
    Bonjour,

    As-tu besoin de ne l'afficher qu'en minuscule ?

    car sinon tu peux essayer avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim strChaineColoris As String = "Rouge;vert;Bleu;Orange"
                        If strChaineColoris <> "" Then
                            Dim strAllItems1 As String() = strChaineColoris.Split(New Char() {";"c})
                            Dim strItem As String
                            For Each strItem In strAllItems1
                                ChoixListeColoris.Items.Add(strItem)
                            Next
                        End If
    Quel contrôle utilises-tu ? car moi sur VB Express 2010, je n'ai pas de contrôle DropDownList, et il ne me reconnait pas ListItem.

    Ce qui est étrange aussi, c'est que même sans ton code rouge tu ais des éléments dans ton ChoixListeColoris.

    Tu peux essayer de mettre avant ton for each un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChoixListeColoris.Items.Clear()
    En espérant avoir pu t'aider,

    @+
    Mat
    Bonjour et merci beaucoup !! ça marche !
    J'ai rajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChoixListeColoris.Items.Clear()
    et c'est bon ! Je n'ai pas compris pourquoi mais ça marche alors .....
    En fait, j'utilise un contrôle DROPDOWNLIST que j'ai dans mon visual studio 2010 dans les contrôles standard. Mon contrôle se trouve dans un repeater et je rempli ma liste dans l'évènement ItemDataBound, alors peut-être que cet évènement est appelé deux fois ?? ça me parait bizarre mais c'est certainement un truc comme ça puisqu'en vidant ça fonctionne .... Bizzare tout ça ....

    Pour infos, comme bibliothèques, j'importe ceci dans ma page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Imports System
    Imports System.Data
    Imports System.IO
    Imports System.Configuration
    Imports System.Collections
    Imports System.Web
    Imports System.Web.Security
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
    Imports System.Web.UI.WebControls.WebParts
    Imports System.Web.UI.HtmlControls
    Imports System.Data.OleDb
    Imports System.Data.SqlClient
    Imports Telerik.Web.UI
    Merci encore matll

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2010
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 151
    Points : 254
    Points
    254
    Par défaut
    Citation Envoyé par Stephane_br Voir le message
    et c'est bon ! Je n'ai pas compris pourquoi mais ça marche alors .....
    En fait, j'utilise un contrôle DROPDOWNLIST que j'ai dans mon visual studio 2010 dans les contrôles standard. Mon contrôle se trouve dans un repeater et je rempli ma liste dans l'évènement ItemDataBound, alors peut-être que cet évènement est appelé deux fois ?? ça me parait bizarre mais c'est certainement un truc comme ça puisqu'en vidant ça fonctionne .... Bizzare tout ça ....
    Peut-être avais-tu rempli ta DropDownList dans l'éditeur graphique, ou est-ce que ta fonction était appelée plusieurs fois, car si tu l'appelles trois fois, elle se remplie 3 fois et donc tu as tes éléments en triple.

    Essaye de mettre un affichage dans la gestion de l'evenement ItemDataBound et tu verras bien si l'évenement est appelé plusieurs fois.

    Mais l'essentiel est que ça fonctionne

    @+
    Mat

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

Discussions similaires

  1. Problème de doublons dans une macro d'insertion
    Par guilo49 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/12/2009, 16h35
  2. Réponses: 1
    Dernier message: 26/11/2008, 16h24
  3. Problème de doublons dans une requète complexe
    Par noakiss dans le forum Langage SQL
    Réponses: 7
    Dernier message: 20/03/2008, 09h19
  4. problème de doublon dans ma requête
    Par ildan dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 15/06/2007, 17h05
  5. Réponses: 12
    Dernier message: 23/05/2007, 10h37

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