如何在数据网格视图组合框列中绑定数据

本文关键字:数据 绑定 组合 网格 数据网 视图 | 更新日期: 2023-09-27 17:55:59

这是联系人,但我们可以有多个联系人,所以我想在组合框中显示一个列表

DataTable dt = new DataTable();
dt = MainClass.GetDatabyQuery("select * from tbl");
if (dt.Rows.Count > 0)
{
    dgv_ClientDetail.DataSource = dt;
}

我有这种方法可以从数据网格视图中的数据库中获取值,但我想要一个数据网格视图组合框列,并希望将数据绑定到一个 dgv 组合框中,另一个在 dgv texbox 中。如果有人知道,那就告诉我。以下是三列 姓名, 城市 , 联系人.我想在 dgv 组合框列中显示多个联系人

如何在数据网格视图组合框列中绑定数据

只需在 dt 中仅选择NameCity,这样您就可以执行以下操作,

        dgv_ClientDetail.DataSource = dt;
        DataGridViewComboBoxColumn dgvCboColumn = new DataGridViewComboBoxColumn();
        dgvCboColumn.Name = "Contacts";
        dgvCboColumn.DataSource = dtContacts; //DataTable that contains contact details
        dgvCboColumn.DisplayMember = "Name";
        dgvCboColumn.ValueMember = "Id";
        dataGridView1.Columns.Add(dgvCboColumn);

编辑:

        dgv_ClientDetail.DataSource = new DataView(dt)
                                         .ToTable(true, new string[] { "Name", "City" });
        DataGridViewComboBoxColumn dgvCboColumn = new DataGridViewComboBoxColumn();
        dgvCboColumn.Name = "Contacts";
        dgv_ClientDetail.Columns.Add(dgvCboColumn);
        foreach (DataGridViewRow row in dgv_ClientDetail.Rows)
        {
            DataGridViewComboBoxCell cboContacts = (DataGridViewComboBoxCell)
                                                         (row.Cells["Contacts"]);
            cboContacts.DataSource = //Get the contact details of a person,
                                     //using his Name or Id field (row.Cells["Name"]);
            cboContacts.DisplayMember = "Name"; //Name column of contact datasource
            cboContacts.ValueMember = "Id";//Value column of contact datasource
        }

希望这有帮助...

试试这个:-

首先,只需在数据网格视图中为联系人提供数据密钥。在 ItemDatabound Events 上,只需使用该 DataGridView 中每个数据项的数据键进行筛选。

试试这样的事情

// Loop through rows and get each combobox
foreach (DataGridViewRow row in dgv_ClientDetail.Rows)
{
     DataGridViewComboBoxCell ContactCombo = (DataGridViewComboBoxCell)(row.Cells[index of Contact column]);
     ContactCombo.DataSource = // your contacts datasource;
     ContactCombo.DisplayMember = "name of field to be displayed like say ContactName";
     ContactCombo.ValueMember = "Id";
}

编辑:您还需要为组合框设置ValueMember。