begin process at 2010 02 10 10:12:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Formulaire / Winforms / Controls

 > 

Cbo et SelectedValue


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Cbo et SelectedValue

jeudi 21 septembre 2006 à 10:38:01 | Cbo et SelectedValue

babe59

Bonjour,

Contexte : J'affiche une liste de client (ListBox) à partir d'un DataSet et je mémorise la primary Key de mes records "client" grâce à la propriété ValueMembre. Grâce à cela, lorsque je clique sur un client de la liste, je retourve facilement sont PK et peut donc afficher l'ensemble des info de ce client.
Ayant une base reationnelle, j'ai une relation entre ma table Client et ma table Ville. Cette table Ville est affichée dans une combo. Donc lorsqu'un client est sélectionné, j'aimerai affiché la bonne ville dans la combo. le problème est que je ne peux pas utiliser la propriété FindStringExact car dansle record client je n'ai que la PK Ville (soit un entier).

Voici ce que j'ai fait (mais qui ne me convient pas vraiment) :
Je récupère les données de la table Ville dans un DataSet puis j'assigne ce DataSet à une Combo grâce à la propriété dataSource. Afin de retrouver la primary Key de mes records j'ai affecté la propriété ValueMember. Ensuite, lorsque je sélectionne un client dans la liste, je selectionne tous mes items de la combo ville afin de retrouver mon PK. Cela fonctionne bien mais on voit la combo "travailler" alors qu'il n'y a pas beaucoup de données.

Voici le source

         //-----------------------------------------------------------------------------
         //-----------------------------------------------------------------------------
         //-----------------------------------------------------------------------------
         // initCboVille
        private void initCboVille()
        {
            //initialisation
            Client client = new Client();   //Classe pour les clients
            Erreur erreur = new Erreur();   // Gestion des erreur
            DataSet ds = new DataSet();     // DataSet pour toutes les villes

            //recherche de tous les clientActif
            erreur = client.retAllVille(out ds);
            if (erreur.enErreur)
            {
                MessageBox.Show(erreur.MsgUser + erreur.MsgInfo,  ...);
                return;
            }

            //Affichage de toutes les ville dans la combo
            cboVille.DataSource = ds.Tables[0];
            cboVille.DisplayMember = "VilleCP";
            cboVille.ValueMember = "NumVille";
        }


         //-----------------------------------------------------------------------------         
         //-----------------------------------------------------------------------------         
         //-----------------------------------------------------------------------------
         //
         private void lstClient_SelectedIndexChanged(object sender, EventArgs e)
            {
               ...
            cboVille.SelectedIndex = Utile.posiCbo(cboVille, int.Parse(dataRow["NumVille"].ToString()));
            ...
            }


         //-----------------------------------------------------------------------------         
         //-----------------------------------------------------------------------------         
         //-----------------------------------------------------------------------------
         // recherche de la PK dans la combo
        public static Int32 posiCbo(ComboBox cbo, Int32 PK)
        {
            for (int i=0; i < cbo.Items.Count;  i++)
            {
                cbo.SelectedIndex = i;
                if (int.Parse(cbo.SelectedValue.ToString()) == PK)
                    return i;
            }
            return -1;            
        }


Question :
Y aurait il un moyen de retrouver la valeur de tous les selectedValue des items de la combo sans passer par leur sélection ?

DT

lundi 25 septembre 2006 à 09:29:28 | Re : Cbo et SelectedValue

aogie

Bonjour,

Pourquoi ne pas utiliser un Hashtable associant Numéro de ville et Index de la ComboBox cboVille.
Après lstClient_SelectedIndexChanged, on sélectionne l'index trouvé dans ce Hashtable...

-- AOGie --
lundi 25 septembre 2006 à 14:53:26 | Re : Cbo et SelectedValue

babe59

Pour la solution que tu me proposes, je suis obligé d'initialiser manuellement le hashTable ? Dans mon cas, je DS provient d'un SELECT dans une BD, je n'ai donc pas d'intervention manuelle pour initialiser la combo ...

DT
lundi 25 septembre 2006 à 15:06:19 | Re : Cbo et SelectedValue

aogie

Réponse acceptée !
Aaaaah, on ne peut pas tout avoir
La boucle présente dans posiCbo est simplement déportée pour l'initialisation du Hashtable. En revanche, un seul appel...

-- AOGie --


Cette discussion est classée dans : erreur, client, dataset, combo, ville


Répondre à ce message

Sujets en rapport avec ce message

DataSet et recherche [ par dmk2003 ] BonjourJe vous pose mon probleme !!!J'ai un dataset contenant toutes mes information client et j'aimerai chercher un client dans mon dataset (jusqua l MAJ d'un Combo [ par Arthenius ] Salut a tous,je perd du temsp sur un truc, alors je viens vous demander de l'aide..voila mon pb, j'utilise des dataset rempli par bdd, avec des databi Writexml erreur [ par katwes ] Bonjour, J'essaie de créer un fichier xml à partir d'un dataset. Dataset.Writexml(@"C:\xml\fichier.xml"); Mais j'ai l'erreur suivante: System.Securit MàJ d'un dataset deconnecté [ par hbiloo ] salut a tousj' ai problem avec la MàJ d'un dataset deconnecté via un datagrid. sans plus de text voici le code : using System.Windows.Forms;using Syst ComboBox filtrés en cascade [ par JB60130 ] Bonjour à tous,Je travaille actuellement sur une application Windows et j'ai cinq combobox (Client,Produit, Pièce...) à remplir et à liés en cascade c combo et dataset [ par benjeddi ] bonjour  j'ai un probleme qui me bloque j'ai cré deux comboBox dans ma forme et j'ai alimenté chaque combo par un datset le probleme c quand je select Impossible de complèter le DataSet [ par maxpag ] Bonjour, Je suis face a un problème de taille (en tous cas pour moi -_-), il n'y a pas moyen de remplir le DataSet qui servira à remplir le dataGridVi Erreur de Fill dataset :/ [ par space ] J'ai encore un petit soucis :)Quand je lance deux fois ma recherche, lors de la deuxieme fois il plante sur le remplissage du dataset. Pouvez vous jet dataset et dataview, tables multiples [ par roinou ] Bonjour à tous,Je suis en train de développer une appli à partir d'une base de donnée. J'ai créé mon DataSet, qui contient 3 tables (les Ô combien cla Erreur Datatable -> DataSet [ par jdaviaud ] j'ai un datatable de je remplis de la manière suivante :maLigne["champ1"] = "Valeur1";maLigne["champ2"] = "Valeur2";maLigne["champ3"] = "Valeur3";maLi


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales