【问题标题】:Cascading comboboxes in DataGridViewDataGridView 中的级联组合框
【发布时间】:2013-06-22 17:08:43
【问题描述】:

我有一个带有两个相邻组合框列的 DataGridview。第一个(称为 StockCategory)绑定到 SQL Server 2012 中 StockCategory 表上的绑定源。下一列是 Stock 组合框,绑定到 Stock 表上的绑定源。要求很简单:当用户从第一个组合框中选择股票类别时,股票组合框中唯一可用的股票项目应该是所选股票类别中的那些。

根据 Stock 类别选择为 Stock 表设置过滤器效果很好:

this.StockBindingSource.Filter = "MaterialGroup = " + this.radGridView1.CurrentRow.Cells["MatGroup"].Value;

除了在这种情况下,Stock 列中的所有组合框都被过滤为过滤器值,其他行中以前的 Stock 值似乎消失了。

我知道这是一个老问题,我一直在网上寻找各种随机解决方案,但似乎没有任何效果。

任何帮助将不胜感激(我正在使用 RadGridView,但解决方案可能是通用的?)

【问题讨论】:

标签: c# winforms combobox radgridview


【解决方案1】:

我有一个通用的解决方案,但对你来说可能不如对我好。 你看,当 .Net 代码似乎对我失败时,我只是更喜欢使用我自己的代码。所以我的建议是保留 win-forms DataGridview 过滤器,附加到 StockCategory 组合框中的值更改事件,并在 Stock 组合框中过滤您自己的值。

你能做到吗?

【讨论】:

  • 我没试过,但问题似乎是特定列中的所有组合框都绑定到同一个绑定源,所以一个过滤器会影响它们。现在我正在研究将嵌入式组合框绑定到数据表的可能性,然后在用户输入该字段时对其进行过滤。但是,很难相信这样一个明显而普遍的要求是如此难以做到。
  • 我在对 winforms 功能感到失望的领域,尤其是在 DB 绑定方面,有着长期而糟糕的经历
猜你喜欢
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-05
相关资源
最近更新 更多