I am populating my datagrid based on a value in the textbox.
网格视图中的一个字段值是一个组合框。在一个特定的文本框条目中,它显示了正确的结果但是我在文本框中给出了另一个值,组合框增加了它的数量,这意味着如果我输入100 ,数据在我的组合框中正确填充,但对于接下来提供的任何值,组合框的数量变为2.我不知道为什么会发生这种情况。这是点击按钮的代码。请帮忙
DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
combo.HeaderText = "Supplier";
//execute sql data adapter to get supplier values
DataTable dt = obj.SqlDataTable("select name1 from blahblah");
//foreach (DataRow supplier in dt.DataSet.Tables[0].Rows)
//{
// combo.Items.Add(supplier[0]);
//}
//dataGridView1.Columns.Add(combo);
foreach (DataRow row in dt.Rows)
{
combo.Items.Add(row["NAME1"].ToString());
}
dataGridView1.Columns.Add(combo);
答案 0 :(得分:0)
您在每次点击时都会添加一个新的组合框...而是检查是否已添加了comboboxColumn并适当修改其内容(如果已存在)。
要执行此检查,请将您的组合框列命名为:
combo.Name = "Supplier";
name属性不会显示在UI中,但Windows Forms会记住它。然后,您可以测试您的列是否已添加:
if (!dataGridView1.Columns.Contains("Supplier"))
答案 1 :(得分:0)
我不确定文本框,但每次点击时,都会在网格中添加一个新的DataGridViewComboBoxColumn
。如果单击5次,您将看到5个DataGridViewComboBoxColumns,下拉列表是sql查询的结果。
您需要检查是否已添加DataGridViewComboBoxColumns
组合:
if (dataGridView1.Columns.IndexOf(combo) < 0)
{
// Add
}