Question

Comme le dit le titre, je suis en train de remplir une colonne de zone de liste déroulante dans un datagridview.

Voici ce que j'ai à ce jour:

Dim lc As System.Web.UI.WebControls.ListItemCollection = _
    DataAccess.Part.GetListItems()

dgvcboPart.DataSource = lc

' This is a standalone combo box and it works ok
cboTest.DataSource = lc

Toutes les suggestions quant à ce que je suis absent?

Merci Tony W

Était-ce utile?

La solution

Je vous suggère d'abord lier votre collection à un BindingSource puis ajoutez le BindingSource à la DataGridView (vous connaissez la position)

Mais un ComboBoxCell obligatoire devrait être assez en avant bien droit.

Disons que vous avez un tblCurrency DataTable contenant deux colonnes Id et Nom. Vous devez lier cela à votre colonne (je suppose que la colonne 0 ist votre DataGridViewColumn)

     dgvcboPart.Columns(0).DataSource = tblCurrency
     dgvcboPart.Columns(0).ValueMember = "Id"
     dgvcboPart.Columns(0).DisplayMember = "Name"

Ensuite, vous pouvez régler le DataPropertyName à la propriété dans votre DataSource.

     dgvcboPart.Columns(0).DataPropertyName = "Currency_Id"

Soyez carful, tblCurrency.Id et Currency_Id doivent être du même type (Int32 et UInt32 ne fonctionne pas) et vous obtenez un MessageBox méchant avec un StackTrace complet si Currency_Id a une valeur qui est pas tblCurrency (vous devriez donc gérer l'événement DataError)

Autres conseils

dgvcboPart.DataSource = lc
dgvcboPart.DataBind()

doivent appeler la méthode DataBind pour que la magie arrive!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top