如何从DataTable / TableAdapter设置ComboBox / RepositoryItemComboBox数据源?

时间:2017-05-26 07:08:04

标签: vb.net winforms combobox grid devexpress

我想知道如果我想在每次网格加载时从数据库加载数据时如何将datasource设置为ComboBox。 这就是我现在所做的(我硬编码了3项只是为了看它是否有效)

 Dim riCombo As RepositoryItemComboBox = New RepositoryItemComboBox

 riCombo.Items.AddRange(New String() {"London", "Berlin", "Paris"})

 gridArticles.RepositoryItems.Add(riCombo)
 colArticles.ColumnEdit = riCombo

我通过DataTableAdapter从数据库获取数据,我正在编写触发sql查询的方法。

在DIMITRY建议之后:

 Dim riLookup As New RepositoryItemLookUpEdit()
        riLookup.DataSource = DataTableDobTableAdapter.FillDob(Me.DsOrders.DataTableDob)
        riLookup.ValueMember = "ID"
        riLookup.DisplayMember = "TITLE"
        riLookup.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup
        GridView1.Columns("CODE").ColumnEdit = riLookup
        GridView1.BestFitColumns()

但是我在这里得到的值应该是下一个值的列:

enter image description here

谢谢你们 干杯

1 个答案:

答案 0 :(得分:0)

要填充ComboBoxEdit编辑器的项目,您可以将数据库中的数据加载到列表中,然后遍历列表中的所有项目并将其添加到项目集合中。例如:

For Each row As DataRow In dataTable
        Dim cellData As String = DirectCast(row(columnName), String)  
        riCombo.Items.Add(cellData)
Next

此外,您可以使用其中一个Lookup Editors。这些编辑器提供DataSource属性,允许您将数据从数据库加载到列表,然后将此列表分配给 DataSource 属性。完成此操作后,只需设置 KeyMember ValueMember 属性即可。这样,您就不需要手动填充项目。