【发布时间】:2010-08-21 13:59:07
【问题描述】:
我有一个 DataGridView,其中有一个组合框列,显示可能的价格,我只想显示与特定行相关的价格。
更详细地说,假设我有一个类方法,它返回一个填充了 2 个表的数据集(由在 SQL Server 2005 数据库上运行的存储过程提供)。
第一个表包含订单详细信息行,第二个表包含每个产品的有效价格。
基本上,我的数据集中的 DataTables 看起来像这样。
OrderDetails
ProductType | ProductID | Qty | SelectedPrice |
DairyProduct | Milk | 5 | 5.50 |
Fruit | Orange | 7 | 6.90 |
等等……
在数据集中的价格表中,我的所有价格都适用于订单日期的所有产品。
Prices
ProductType | ProductID | Price |
DairyProduct | Milk | 5.50 |
DairyProduct | Milk | 6.90 |
DairyProduct | Milk | 7.90 |
Fruits | Orange | 6.90 |
Fruits | Orange | 4.50 |
等等……
我将我的 OrderDetails 表绑定到 DataGridView,用户需要对其进行修改。
我希望 DataGridView 的价格列显示数据集第二个表中的价格。
我已经做到了,我现在每行都有一个组合框,但是 ComboBox 显示了我的价格表中的所有价格,我想要的只是它显示有效的价格特定产品。 例如,如果用户单击牛奶行上的 DataGridView,它应该只显示牛奶的价格,而不是所有价格。
我不确定如何实现。 有什么指点或例子吗?
提前非常感谢!
我正在使用 C# 和 WinForms 在 VS 2008 上进行开发。
【问题讨论】:
-
你能贴出你用来为每一行创建组合框的代码吗?那是需要更改的代码,因为它需要被过滤。看到该代码将有很大帮助!
-
没什么复杂的,只需创建一个 DataGridViewComboBoxColumn 并使用 dataGridViewInstance.Columns.Add 方法将其添加到我的 DataGridView 中,并使用 DataSource、ValueMember 和 DisplayMembers 属性将此列绑定到我的数据集表。
标签: c# winforms ado.net datagridview