0
选择一个项目我有DataGridViews一个相当长的一段经历,我解决不了这个超级简单的问题...在Datagridviewcomboboxcolumn
我有一个comboboxcolumn一个DataGridView 预先设定可能的选项(3个简单的选项) 。我有一个表格的数据库,我想为列中的单元格选择正确的值。我需要保留用户可能稍后更改选项的选项(并将其保存回数据库)。
我创建了选项的数据表:
Dim dtShift As New DataTable
dtShift.Columns.Add("ValueM")
dtShift.Columns.Add("DisplayM")
dtShift.Rows.Add({123, "123"})
dtShift.Rows.Add({345, "345"})
dtShift.Rows.Add({678, "678"})
然后我给你这样(DS为数据集数据填充)值:
Me.DataGridView1.AutoGenerateColumns = False
Dim colpon As DataGridViewComboBoxColumn = Me.DataGridView1.Columns("PonLen")
With colpon
.DataSource = dtShift
.ValueMember = "ValueM"
.DisplayMember = "DisplayM"
.DataPropertyName = "PonLen".ToString ' contains an option like "345"
'.ValueMember = "PonLen" ' not needed, if Display member is saved
End With
...但是这行不通好吧,尽管它尽可能的接近我所能得到的。我 列具有正确的选项,有选择正确的价值观,但DataErrorEvent洪水与错误像这样的测试日志文本框:
Row=12 cell=3 : System.FormatException: DataGridViewComboBoxCell value is not valid.
列'PonLen'的类型是什么?确保输入该列与选项DataTable中的'ValueM'列的类型相同。 – Fabio
PonLen是TinyInt。我会看看如何为数据表列指定数据类型。 –
我指定的值成员的数据类型:dtShift.Columns(0).DataType = System.Type.GetType(“System.Int32”) - 但它没有帮助解决此问题... –