cs_mgiallu
Messages postés4Date d'inscriptionmardi 29 juillet 2003StatutMembreDernière intervention18 décembre 2006
-
17 déc. 2006 à 18:09
cs_mgiallu
Messages postés4Date d'inscriptionmardi 29 juillet 2003StatutMembreDernière intervention18 décembre 2006
-
18 déc. 2006 à 19:21
Bonjour, je suis en train de me former à .net et je me trouve face à un problème :
Jai disposé un controle ComboxBox sur un formulaire alimenté par une table dans laquelle j'ai un code identifiant et une valeur texte(ex: liste de pays (France:01; Suisse:02..;etc), je voudrais donc faire défiler le texte mais récupérer l'identifiant lors du choix...
J'y arrive pas...Quelqu'un sait-il comment faire ??
Merci d'avance.
ALain.
Il suffit de faire des opérations sur les chaines pour diviser :
Dim Pays As String = TaComboBox.SelectedItem.ToString()
Dim Name As String = Pays.Substring(0, Pays.IndexOf(":"c))
Dim Nb As String = Pays.Substring(Pays.IndexOf(":"c) + 1),
cs_mgiallu
Messages postés4Date d'inscriptionmardi 29 juillet 2003StatutMembreDernière intervention18 décembre 2006 17 déc. 2006 à 23:59
Charles, merci pour ta réponse, mais je ne souhaite pas voir apparaître le code et le texte, je veux voir le texte seulement comme dans ASP quand on écrit <select....><option value='01'>France</option></select> et ou l'utilisateur voit France mais la valeur du control est '01'.
Je vais essayer de voir ce que veut dire la réponse de vercomax, mais je n'ai pas vu ces propriétés pour le contrôle ComboBox...
voila le code :
Je liste les codes type d'une table, avec TAB_CLE = le code et TAB_NOM=le texte, jaimerais afficher le texte et récupérer le code.
Je pense qu'il y a des solutions du genre, je crée une table à deux dimensions dont je me sers pour initialiser les items du combo et ensuite je m'arrange pour retrouver le code dans ma table, mais ça me parait un peu compliqué...
sSQl "SELECT TAB_CLE,TAB_NOM AS TYPE FROM INTRA_TABCODE WHERE TAB_CODE 'TYP'"
With cmdSelect
.Connection = cnEmployeurs
.CommandType = CommandType.Text
.CommandText = sSQl
drIntraTabcode = .ExecuteReader()
End
With
cbType.Items.Clear()
cbType.Items.Add("Tous")
Do
While
drIntraTabcode.Read
cbType.Items.Add(drIntraTabcode.GetValue(1))
'je viens de rajouter ça, mais bon, c'est pas logique:
cbType.ValueMember = drIntraTabcode.GetValue(0)
cs_mgiallu
Messages postés4Date d'inscriptionmardi 29 juillet 2003StatutMembreDernière intervention18 décembre 2006 18 déc. 2006 à 14:35
Hello Charles
Ben pas forcément, c'est une table qui est mise à jour par l'utilisateur (création, suppression) et le code est incrémenté de sorte qu'il peut y avoir des trous.
Ce que je ne comprends pas, c'est que ce ne soit pas prévu dans ce contrôle.
il faut en fait créer un nouveau user controle avec une propriété supplémentaire par item...non ?
Dans ce cas, il faut que tu fasse un strucutre ou une class qui contient deux champs (nom et nummero) et avec la propriété DisplayMember, tu lui met le nom de ta variable nom de la structure. Il affichara seulement le nom.
Pour récupéré, si faut que tu cast l'objet en type de ta strucutre et tu récupére ainsi le numéro.