0

就像标题说的那样,我正在尝试在 datagridview 中填充组合框列。

这是我到目前为止所拥有的:

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

关于我缺少什么的任何建议?

谢谢托尼·W

4

2 回答 2

0
dgvcboPart.DataSource = lc
dgvcboPart.DataBind()

必须调用 databind 方法才能发生魔法!

于 2009-05-14T19:14:51.120 回答
0

我首先建议您将您的 Collection 绑定到 BindingSource,然后将 BindingSource 添加到 DataGridView(这样您就知道位置)

但是绑定 ComboBoxCell 应该非常简单。

假设您有一个包含两列 Id 和 Name 的 DataTable tblCurrency。您必须将此绑定到您的列(我假设第 0 列是您的 DataGridViewColumn)

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

然后,您可以将 DataPropertyName 设置为 DataSource 中的属性。

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

小心,tblCurrency.Id 和 Currency_Id 必须是相同的类型(Int32 和 UInt32 不起作用)如果 Currency_Id 的值不在 tblCurrency 中,你会得到一个带有完整 StackTrace 的讨厌的 MessageBox(所以你应该处理 DataError事件)

于 2009-06-11T11:43:38.150 回答