2009-05-14 6 views
0

Wie der Titel sagt, versuche ich eine Combo-Box-Spalte in einem Datagridview zu füllen.Füllen einer datagridview-Combobox-Spalte mit subsonic & vb.net

Hier ist, was ich bisher:

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 fehle?

Dank Tony W

Antwort

0

Ich schlage vor, Sie zuerst Ihre Sammlung an eine Binding binden und dann die Bindingdatagridview hinzuzufügen (damit Sie wissen, die Position)

Aber Bindung ein ComboBoxCell sollte ziemlich einfach sein.

Nehmen wir an, Sie haben eine DataTable tblCurrency mit zwei Spalten ID und Name. Sie haben zu binden diese an Ihre Spalte (Ich gehe davon aus Spalte 0 ist Ihr Datagridviewcolumn)

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

Dann Sie die DataPropertyName zum Immobilien in Ihrer Datasource festlegen.

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

Be carful, tblCurrency.Id und currency_id haben von der gleichen Art zu sein (Int32 und UInt32 funktioniert nicht) und Sie einen bösen MessageBox mit einem vollen Stacktrace, wenn currency_id einen Wert hat, der nicht in tblCurrency ist (also sollten Sie das DataError-Ereignis behandeln)

0
dgvcboPart.DataSource = lc 
dgvcboPart.DataBind() 

haben die DataBind-Methode für die Magie nennen passieren!

+0

Winforms, nicht asp.net. also 'DataBind' ist kein Mitglied von 'System.Windows.Forms.DataGridViewComboBoxColumn' Danke, obwohl –