Voici des contacts mais nous pouvons avoir plusieurs contacts donc je veux montrer une liste dans combobox
DataTable dt = new DataTable();
dt = MainClass.GetDatabyQuery("select * from tbl");
if (dt.Rows.Count > 0)
{
dgv_ClientDetail.DataSource = dt;
}
J'ai cette méthode pour récupérer les valeurs de la base de données dans datagridview mais je veux une colonne datagridview combobox et je veux lier des données dans un combobox dgv et dans des texbox dgv. Si quelqu'un sait, dis-le moi. Voici trois colonnes Nom, Ville, Contacts. Je veux montrer plusieurs contacts dans la colonne dgv combobox
Il suffit de sélectionner uniquement Name
et City
dans dt
pour pouvoir faire quelque chose comme
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);
MODIFIER:
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
}
J'espère que cela t'aides...
Essaye ça:-
D'abord, il suffit d'avoir la clé de données dans DataGridView pour le contact. Et sur ItemDatabound Events, utilisez simplement datakey pour filtrer chaque dataitem dans ce DataGridView.
Essayez quelque chose comme ça
// 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";
}
Edit: vous devez également définir ValueMember pour la liste déroulante.