数据模型大致是这样子的,Product 表中有一个ProductTypeKey字段,ProductType表中有ProductTypeKey,ProductTypeValue等字段。
使用Aspnet中的DataGridView 控件绑定上述的Product表,同时要求,ProductTypeKey列显示为ProductType表中的对应的ProductTypeValue。
为了完成上述的绑定,我使用了DataGridViewComboBoxColumn
ProductDataTable productDT;
productDataAdapter.Fill(productDT);
DataGridView.DataSource = productDT;
DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
column.DataSource = productTypeDT;
column. DataPropertyName = "ProductTypeKey";
column.DisplayMember = " ProductTypeValue";
colummn.ValueMember = "ProductTypeKey";
....
然后在运行的时候一直出现DataGridViewComboBoxCell ArgumentException。由于公司的网络又中断了,所以调试半天也不知道什么原因。
开始还以为是是不是Product表中的ProductTypeKey为空的缘故,后来把所有的值全部填充也是同样出现错误。
由于实际的项目是从Xml文件中读取SQL语句以及DisplayMember和ValueMember的原因导致问题升级,半天也没有结果。
晚上回到家,万能的Google,就搜索到原因是Product表中的ProductTypeKey的类型与ProductType表中的ProductTypeKey类型不一致。
真是百密一疏啊/