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

C# Discussion :

Combobox : Ajouter un item


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut Combobox : Ajouter un item
    Bonjour,
    J'ai une combobox que je remplis à partir d'une table SQL, à l'aide d'un DataSet. J'utilise
    this.ComboBox.DisplayMember
    this.ComboBox.ValueMember
    J'aimerais pouvoir ajouter un item (exemple : "NouvelItem" pour le texte affiché, et "250" pour la valeur) à n'importe quel moment sans recharger la liste. Mais je ne vois pas comment le faire.
    Si vous pouvez m'aider....
    Merci beaucoup
    Cédric

  2. #2
    Membre éprouvé
    Inscrit en
    Décembre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2003
    Messages : 108
    Par défaut
    une fois ta liste chargée tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ListItem item=new ListItem("NouvelItem","250");
    this.combobox.Items.Insert(6,item);
    6 est l'emplacement (à partir de 0) où tu veux insérer ton élément, vérifie bien sûr que cet élément existe dans la liste sinon tu aura une belle exception

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    Merci bp pour ta réponse, et ListItem fait parti d'un espace de nom ou c'est une structure à créer?
    Cédric

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 5
    Par défaut
    C'est probablement trop tard mais bon...

    ListItem fait partie d'un espace de nom

    System.Web.UI.WebControls

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    ben non c'était pas trop tard
    Merci bp, j'avait déjà trouvé l'info avant de poster ici mais ca ne marchait pas car j'avais oublié d'ajouter la référence
    Merci bp
    Cédric

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    En fait ca marche pas j'ai le message d'erreur suivant :
    Impossible de modifier la collection d'éléments lorsque la propriété DataSource est définie.

  7. #7
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Ben oui !

    C'est normal puisque ton combo est bindé a une datatable issue d'un query
    Il faut ajouter un row dans ta datatable et pas dans le combo !

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    Effectivement tu as raison. J'arrive à ajouter l'item, mais par contre après je n'arrive pas à le sélectionner par programme. Il m'affiche la dernière valeur de la liste...
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    this.ComboBox.DisplayMember = "LIBELLE";
    this.ComboBox.ValueMember = "NUMERO";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DataRow oDataRow = oDataSetTables.Tables[MaTable].NewRow();
    oDataRow["NUMERO"] = cNumElement;
    oDataRow["LIBELLE"] = cLibelle;
    oDataSetTables.Tables[MaTable].Rows.Add(oDataRow);
    this.ComboBox.SelectedValue = cNumElement;
    Si qu'un voit une erreur...
    Merci bp
    Cédric

  9. #9
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Je vois pas vraiment d'erreur

    Si je me souviens bien je fais ca encore plus direct

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DataRow cRow=Table.Rows.Add();
    cRow["col1"]=Truc;
    Mais ca doit rien changer a ton probleme
    Moi j'essayerais un refresh du combo apres le Add !

    Ou si ca marche pas tu debind et rebind
    En clair :
    Tu set le datasource a null
    Et puis tu reassigne !

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    Merci pour ta réponse. j'ai fait pareil que toi, et du coup ça marche. Mais le problème c'est que l'item est ajouté à la fin, donc la liste n'est plus triée, et je me demande si c'est aps le fait qu'il soit ajouté a la fin qui done l'impression que ça marche

  11. #11
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    A mon avis c'est surtout les propriétés de ton combo que tu dois vérifier

    Est-il trié ?
    Sinon le tri que tu aura sera le tri intitial lors du query de ta datatable
    Mais si tu rajoute des eléments, ils ne seront forcément plus trié dans cette datatable !

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    oui elle est triée la combo.
    Mais lorsque je faisais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DataRow oDataRow = oDataSetTables.Tables[MaTable].NewRow();
    oDataRow["NUMERO"] = cNumElement;
    oDataRow["LIBELLE"] = cLibelle;
    oDataSetTables.Tables[MaTable].Rows.Add(oDataRow);
    this.ComboBox.SelectedValue = cNumElement;
    L'élément était bien positionné dans la liste.
    Le truc c'est que je ne veux pas faire un "debind" "rebind" car certaines listes sont longues à charger

  13. #13
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    oui elle est triée la combo
    Soit plus precis

    Tu veux dire que tu la VOIS triée
    Ou bien que tu a setté la propriété sorted a true

    Quel est la clause order dans ton query ?

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    j'ai la propriété sorted a true :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.ComboBox.Sorted = true;
    Ma clause c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    oDa.SelectCommand.CommandText += " ORDER BY LIBELLE";

  15. #15
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut

    N'ayant pas tout sous les yeux il ne m'est pas facile de dire si le comportement que tu dénonce est normal ou pas.

    Mais, pour ce type de combo, je le met généralement

    AutoCompleteSource ListItem
    AutoCompleteMode SuggestAppend

    Et je ne me préoccupe pas trop du tri

    Sinon tu peux essayer de passer par un dataview
    Tu trie le dataview et tu le met en datasource de ton combo
    Mais tu continue a intervenir sur la DataTable bien entendu

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    c'est ce que j'ai. En fait ce qui est bizarre c'est qu'en utilisant la méthode suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DataRow oDataRow = oDataSetTables.Tables[MaTable].NewRow();
    oDataRow["NUMERO"] = cNumElement;
    oDataRow["LIBELLE"] = cLibelle;
    oDataSetTables.Tables[MaTable].Rows.Add(oDataRow);
    this.ComboBox.SelectedValue = cNumElement;
    L'élément est bien ajouté. Mais c'est quand j'affecte la nouvelle valeur à la combo que je ne récupère pas le bopn enregistrement (il se place toujours sur le dernier).
    C'est ça que j'ai du mal à comprendre (parmi d'autres choses lol)

  17. #17
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Tu a essayé SelectedItem ?

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    oui et ca affiche rien

  19. #19
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Je passe

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    je comprends. Merci quand même pour ton aide

Discussions similaires

  1. comment ajouter des items dans un combobox sous delphi?
    Par salimo79 dans le forum Débuter
    Réponses: 6
    Dernier message: 19/10/2009, 17h21
  2. Ajouter FontFamily items dans combobox
    Par olibara dans le forum Windows Forms
    Réponses: 11
    Dernier message: 25/07/2009, 17h34
  3. Gwtext: comment ajouter un item dans ma combobox dynamiquement
    Par dadoukhane dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 03/07/2008, 17h42
  4. [VBS] Ajouter un item a un combobox
    Par PaLoTTe dans le forum VBScript
    Réponses: 2
    Dernier message: 05/09/2007, 12h18
  5. Ajouter plusieurs items à une Combobox
    Par ShortcutZ dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 16/10/2006, 09h14

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