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

War es hilfreich?

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!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top