[VB.NET] ListBox lié un element a une clé
Donc pour etre clair et concis :
J'ai une listbox listant des clients.
ceux ci sont récupérer d'une base de donnée ainsi que la clé primaire qui les lie (Table CLIENT : Identifiant, nom)
maintenant j'aimerais donc envoyer dans ma list box le nom du client et garder en memoire dans le list box la clé primaiure de facon a eviter d'aller la rechercher dans la base.
J'ai chercher sur le forum et j'avais trouvé uhn truc qui me paraissait pas mal et qui disait que items.add prenait n'importe quoi.
Du coup j'ai envoyer une arraylist dans items.add (en bouclant sur les elements de l'arraylist)
Code:
1 2 3 4 5 6
| arrayclient = classclient._lst_client
For i = 0 To arrayclient.Count - 1
Dim newitem As New class_client()
newitem = arrayclient(i)
lst_client.Items.Add(newitem)
Next |
du coup dans la liste il affiche gest_admin.class_client.
Je pensais trouver moult post traitant de ce sujet mais malgré cela je n'ai rien trouvé. (malgré une recherche bien généraliste en utilisant listbopx comme mot clé et d'autres r'echerches dont je me souviens plus)
Maintenant j'ai bien une idée pour feinter qui serait d'utiliser la listbox en multicolonne puis de rendre invisible la colonne identifiant mais n'existe t il pas des propriétés de listbox qui rendrait le code plus élégant
voila je vous remercie d'avance de l'aide que vous m'apporterez
@+
Hirochirak
j'ai un peu corrigé ta classe.
Salut
j'ai un peu corrigé ta classe.
Il te manque juste la fonction ToString()
J'ai mis en privé tes propriétés _id et _nom
Et le constructeur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
Public Class class_client
Private _id As Integer
Private _nom As String
sub new(byval id as integer, byval Nom as string)
_id=id
_nom=nom
end sub
Public Property id() As Integer
Get
Return _id
End Get
Set(ByVal Value As Integer)
_id = Value
End Set
End Property
Public Property nom() As String
Get
Return _nom
End Get
Set(ByVal Value As String)
_nom = Value
End Set
End Property
Overrides Function ToString() As String
Return (_nom)
End Function
end class |
exemple utiliser ton constructeur
dim cli as new class_client( 1978 , Ricil78 )
Voilà Ta classe qui doit fonctionner. La fonction ToString(), c'est la fonction qui sera appelé par ta défaut par une liste déroulante ou objet du meme style. En gros c'est ta fonction d'affichage. Donc là ici si tu envoies un objet de type class_client dans une liste déroulante tu verra apparaitre les noms de tes clients. l'avantage de cela c'est que tu peu faire du traitement avant l'affichage. Exemple simple renvoyé le nom et le prénom dans ta liste. On peu imaginé ce qu'on veut.
Rapel:
pour récupéré l'id du client selectionné tu fait.
Code:
1 2 3 4 5
|
dim IdClient as integer
dim cli as class_client
cli = taliste.SelectedItem
IdClient =cli.id |
Ps : si g bien compris la doc .net fait attention car le type integer n'est pas .net, regarde plutôt du coté int36 , int32 , ect
@+