用 subsonic & vb.net 填充 datagridview 组合框列
Posted
技术标签:
【中文标题】用 subsonic & vb.net 填充 datagridview 组合框列【英文标题】:populating a datagridview combobox column with subsonic & vb.net 【发布时间】:2009-05-14 19:09:33 【问题描述】:正如标题所说,我正在尝试在 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
【问题讨论】:
【参考方案1】:我首先建议你将你的 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 事件)
【讨论】:
【参考方案2】:dgvcboPart.DataSource = lc
dgvcboPart.DataBind()
必须调用 databind 方法才能让魔法发生!
【讨论】:
Winforms,而不是 asp.net。所以“DataBind”不是“System.Windows.Forms.DataGridViewComboBoxColumn”的成员,不过谢谢以上是关于用 subsonic & vb.net 填充 datagridview 组合框列的主要内容,如果未能解决你的问题,请参考以下文章