.NET Datagridview ComboxColumn-选定值
我在VB.NET中创建了一个包含datagridview(dg)的应用程序,绑定到datatable 然后,我创建一个DataGridViewComboBoxColumn,并使用另一个datatable中的下拉选项填充它 我将其与以下内容绑定:.NET Datagridview ComboxColumn-选定值,.net,vb.net,datagridview,.net,Vb.net,Datagridview,我在VB.NET中创建了一个包含datagridview(dg)的应用程序,绑定到datatable 然后,我创建一个DataGridViewComboBoxColumn,并使用另一个datatable中的下拉选项填充它 我将其与以下内容绑定: sHeader = "CType" With DDcol .DataSource = dtTemp .ValueMember = "VID" .Dis
sHeader = "CType"
With DDcol
.DataSource = dtTemp
.ValueMember = "VID"
.DisplayMember = "Display"
.HeaderText = sHeader
.FlatStyle = FlatStyle.Flat
.Name = sHeader
.DisplayIndex = 1
End With
dtTemp是一个数据表,包含SQL生成的值,如果在MS SQL Server Management Studio中运行,该值如下所示:
VID Display
1 Value One
2 Value Two
然后,我将该列添加到datagridview
dg.Columns.Add(DDcol)
它按预期显示
但是,ValueMember不会生效
如果我向下拉列表中添加一个操作,它产生的值是DBNULL。如果我尝试用下面这样的代码预先填充表,它将不起作用。如果您能帮助解决此问题,我们将不胜感激
dg.Rows(0).Cells(sHeader).Value = 1
我刚试过这个:
var dt = new DataTable();
dt.Columns.Add("vid", typeof(int));
dt.Columns.Add("display", typeof(string));
dt.Rows.Add(new object[] { 1, "one" });
dt.Rows.Add(new object[] { 2, "two" });
dt.Rows.Add(new object[] { 3, "three" });
dataGridView1.Columns.Add(new DataGridViewComboBoxColumn
{ DataSource = dt, ValueMember = "vid", DisplayMember = "display" });
dataGridView1.Rows[0].Cells[0].Value = 1;
。。。而且它工作得很好。。。也许你可以自己在vb.net中重写…请添加所有相关代码;也就是说:
dtTemp
是什么,如何将DDcol
添加到DGV,sHeader的值是什么,等等。谢谢@varocabas。刚刚编辑。