从datagridview数据集中填充ComboBox起始值

时间:2018-07-11 22:18:12

标签: c# datagridview combobox datagridviewcombobox

我有3列dgv,ProductID |产品说明|当前折扣。

当前,这3列是textbox列,是使用数据源绑定到SQL表的方式填充的,该表工作正常。

我真正想要的是将CurrentDiscount列设置为ComboBoxColumn,在加载dgv时,它将使用数据库表中的当前数据填充单元格(在每一行上),但是允许我使用ComboBox功能来将折扣值更改为其他值。

我一直在搜索几个小时,无法弄清楚该怎么做。

任何帮助将不胜感激。

P.S,当我创建dgv并使用向导为其分配数据源时,我毫无用意地共享当前代码,因为它们都是以编程方式生成的(并且是巨大的)。

1 个答案:

答案 0 :(得分:0)

如果每行的选择列表相同,则使用DataGridViewComboBoxColumn非常简单。

这里是一个示例,假设DiscountTbl是一个包含折扣列表的DataTable,并具有DiscountId和DiscountName列:

   DataGridViewComboBoxColumn grdCol = new DataGridViewComboBoxColumn();
   grdCol.DataSource = discountTbl;
   grdCol.DataPropertyName = "DiscountId";
   grdCol.DisplayMember = "DiscountName";
   grdCol.HeaderText = "Discount";
   grdCol.Name = "DiscountId";
   grdCol.ValueType = typeof(System.Int32);

   dgv.Columns.Add(grdCol);