【问题标题】:filtering data in datagridview using combobox and button使用组合框和按钮过滤 datagridview 中的数据
【发布时间】:2016-04-30 21:00:00
【问题描述】:

我想使用组合框和按钮过滤 datagridview 中的数据。我已经搜索了几个小时并尝试了一些代码,但总是出错。

如果有人能告诉我有关如何编码的最佳且简单的方法,我将不胜感激。

这是表格的图片

我想通过选择年份级别或部分名称并单击按钮 Show 来过滤 datagridview 中的数据。通过这样做,留在 datagridview 中的数据应该只是具有所选年份级别或部分名称的数据。 我现在正在尝试使用此代码,但它既不给我结果也不给我错误

private void btnShow_Click(object sender, EventArgs e)
{
    BindingSource show = new BindingSource();
    datagridview1.DataSource = show;
    show.Filter = "ColLevel ='"+cmbYearLevelF.Text+"' OR ColSectionNumber ='"+cmbSectionNameF.Text+"'";
}

【问题讨论】:

  • 必须先设置BindingSource的DataSource。为了过滤,字符串用撇号和数字括起来,没有撇号。因此,如果 ColLevel 是 int 则使用 "ColLevel = " + cmbYearLevelF.Text 等。
  • 图片中的表格——我们看到的数据是如何填充网格的?
  • @IvanStoev 有一个创建按钮,它调用另一个带有文本字段的表单来填充并将数据放入 datagridview
  • 换句话说,您最初没有将某种数据源绑定到网格?

标签: c# winforms datagridview combobox filtering


【解决方案1】:

您只需在现有的 BindingSource 上设置过滤器,如下所示:

existingBindingSource.Filter = "ColLevel = '2'";

首先硬编码一个简单的值以确保它正常工作。

现有是指当前附加到 DataGridView 的 BindingSource。

【讨论】:

  • 它不工作。可能在声明绑定源代码时缺少一些东西,但我不知道它是什么。
  • BindingSource 对象应该已经存在...否则您将看不到任何数据。它应该已经被声明和实例化了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多