DataGridView的下拉DataGridViewComboBoxColumn的数据绑定问题
需求:左边这列固定x行,右边显示下拉,并且赋上默认值
csharp
public void Set()
{
// 添加需要固定显示的行数
dataGridView1.Rows.Add("早班";
dataGridView1.Rows.Add("中班");
dataGridView1.Rows.Add("晚班");
// 构造数据
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Name");
DataRow dr = dt.NewRow();
dr["ID"] = "1";
dr["Name"] = "张三";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"] = "2";
dr["Name"] = "李四";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"] = "3";
dr["Name"] = "王五";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"] = "4";
dr["Name"] = "王六";
dt.Rows.Add(dr);
// 绑定数据
Column2.DataSource = dt;
Column2.DisplayMember = "Name"; // 显示值
Column2.ValueMember = "ID"; // 实际值
// 赋值
for (int i = 0; i < 3; i++)
{
dataGridView1.Rows[i].Cells["Column2"].Value = dt.Rows[i]["ID"].ToString();
}
}
需要注意的地方:
dataGridView1.Rows[i].Cells["Column2"].Value = dt.Rows[i]["ID"].ToString();
这个Value赋值的时候,要注意数据类型,因为有的时候这个ID是Int类型的,这个Value就不能赋值String,否则会导致显示错误!!