C#DataGridView组合框以编程方式添加数据

时间:2011-09-07 14:45:54

标签: c# items datagridcomboboxcolumn

这个问题可能已经在这里提出过了,但是我找不到了,所以我自己就问了。

我有一个带DataGridView的应用程序。其中一列是Combobox类型。我想添加这个组合框的项目programaticaly。这是我用于此的代码:

this.dsStatussen = this.statussenMan.getAllStatussen();
        DataGridViewComboBoxColumn cd = (DataGridViewComboBoxColumn)this.dgvEenheden.Columns[3];
        cd.DataSource = dsStatussen;
        cd.DisplayMember = "statussen";
        cd.DataPropertyName = "sid";
        cd.ValueMember = "status";

然后当我尝试添加一行时,我收到以下错误:“没有名称状态的字段”。我将错误转换为英语,因为我有一个荷兰语错误。 这是我用于添加行的代码:

Eenheden eenhedenMan = new Eenheden(objEvenement.eid);
        DataSet EenhedenData = eenhedenMan.getAllEenheden();

        foreach (DataRow dr in EenhedenData.Tables[0].Rows)
        {
            dgvEenheden.Rows.Add(
                                    dr[0].ToString(), 
                                    dr[1].ToString(), 
                                    dr[2].ToString(), 
                                    Convert.ToInt32(dr[6]), 
                                    dr[3].ToString(), 
                                    dr[4].ToString(), 
                                    dr[5].ToString()
                                );
        }

有人可以帮我弄清楚我做错了什么吗?我找不到它。这是我第一次使用带有组合框的DataGridView。

你的, 哈德

2 个答案:

答案 0 :(得分:1)

根据我的经验,如果你通过绑定scource绑定它,然后设置

,我发现一切似乎都工作得更好
bindingScource.dataScource.Rows.Add( 
                                    dr[0].ToString(),  
                                    dr[1].ToString(),  
                                    dr[2].ToString(),  
                                    Convert.ToInt32(dr[6]),  
                                    dr[3].ToString(),  
                                    dr[4].ToString(),  
                                    dr[5].ToString() 
                                ); 

答案 1 :(得分:0)

选择正确的行?你的意思是从下拉列表中选择以查看datagrid中的行?

 int index = dropdown.SelectedIndex();

 for(int count = 0; count < dgvEenheden.Rows.Count; count ++)
{
   if (dgvEenheden.Rows[count].Cells["<enter col name here>"].Value.ToString().equals(dropdown.Items[index].Text))
{
    dgvEenheden.Rows[count].Selected = true; //to select the Row
    dgvEenheden.Rows[count].Cells[<Cell Number>].Selected = true; //to select the specific Cell

}
}