Datagridview combobox Spalte mit Subsonic bevölkern & vb.net
-
21-08-2019 - |
Frage
Wie der Titel schon sagt, ich versuche, ein Kombinationsfeld Spalt in einem Datagridview zu füllen.
Hier ist, was ich habe, so weit:
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
Irgendwelche Vorschläge, was ich bin fehlt?
Danke Tony W
Lösung
Ich schlage vor, Sie zuerst Ihre Sammlung an eine Binding binden und fügen Sie dann den Bindingdatagridview (so kennen Sie die Position)
Aber Bindung ein ComboBoxCell sollte ziemlich einfach sein.
Angenommen, Sie haben eine Datatable tblCurrency enthält zwei Spalten ID und einen Namen haben. Sie haben zu binden diese an Ihre Spalte (I Spalte 0 ist Ihr Datagridviewcolumn annehmen)
dgvcboPart.Columns(0).DataSource = tblCurrency
dgvcboPart.Columns(0).ValueMember = "Id"
dgvcboPart.Columns(0).DisplayMember = "Name"
Dann können Sie die DataPropertyName zum Immobilien in Ihrer Datasource gesetzt.
dgvcboPart.Columns(0).DataPropertyName = "Currency_Id"
Seien Sie carful, tblCurrency.Id und currency_id haben von der gleichen Art sein (Int32 und UInt32 funktioniert nicht) und Sie einen bösen MessageBox mit einem vollen Stacktrace, wenn currency_id einen Wert hat, nicht in tblCurrency ist (so sollten Sie behandeln Sie das Dataerror-Ereignis)
Andere Tipps
dgvcboPart.DataSource = lc
dgvcboPart.DataBind()
haben die databind Methode aufrufen für die Magie passieren!