的DataGridView +组合框+从2个表
问题描述:
数据我有2个表:的DataGridView +组合框+从2个表
第一:
id | 2ndTableId | Name
二:
id | name
我希望他们在的dataGridView显示为列: 1 - >组合框与第二表中的名称列表(带有一些where子句),选定的值=从第一个表'2ndTableId' 2->名称从第一个表
此外我想保留在ComboBox 2值(id和名称)。我使用Id和Name属性创建了自己的MyComboBox类,但出现错误:
System.argumentException:DataGridViewComboBoxCell值无效。
我不知道如何管理这个。你可以帮我吗?
答
我有一个相同的场景。我为两个表创建了两个DTO类并分配它们。 创建两个类
public class Table1
{
public int Id { get; set; }
public int Table2Id { get; set; }
public string Name { get; set; }
}
public class Table2
{
public int Table2Id { get; set; }
public string Table2Name { get; set; }
}
然后在你创建一个DataGridView与四列。
Column1=> Name:idDropDown Default Text Style:DataGridViewCellStyle { }
Column 2=> Name:Table1Id DataPropertyName:Table1Id
Column 3=> Name:Table2Id DataPropertyName:Table2Id
Column 4=> Name:Tbale1Name DataPropertyName:Tbale1Name
然后用你需要的数据生成两个列表。
List<Table1> dropDownList;
List<Table2> gridData;
在你的代码使用方法如下
idDropDown.DisplayMember="Table2Name";
idDropDown.ValueMember="Table2Id";
idDropDown.DataSource=dropDownList;
gridview1.AutoGenerateColumns = false;
gridview1.DataSource=gridData;
最主要的是我们要设置的AutoGenerateColumns为False在此代码