【问题标题】:How can i get a proper Filter function in my DataGridView? [closed]如何在我的 DataGridView 中获得正确的过滤器功能? [关闭]
【发布时间】:2022-01-23 19:28:14
【问题描述】:

我对使用 WinForms 进行编程有点陌生,我想获得一个合适的过滤器功能...

这是我目前所拥有的。

Picture of my DataGridView

例如,现在我想按可乐过滤。 因此,如果您键入 C,则只会弹出 Cola 和 Chips。

如果可以的话,非常感谢您的帮助。

【问题讨论】:

  • 不清楚你现在是如何过滤的,结果有什么问题
  • 我删除了[visual-studio] 标签,因为这不是关于使用 Visual Studio 应用程序的问题。请确保您在将标签描述应用于您的问题之前阅读它们,以免滥用它们。
  • 您的 DataGridView 是如何填充的?过滤将如何工作? (正如我所看到的,如果搜索按钮无法输入文本或其他方法来执行过滤器)。过滤是否应该以包含开头或其他选项(如包含)结尾?区分大小写如何?
  • 我还没有过滤...我猜我只是有那个“装饰”的搜索按钮。我会努力提出更好的提问!

标签: c# winforms filter


【解决方案1】:

执行您尚未完成的任何部分:

  • 将数据集类型的文件添加到您的项目中。称它为一个合理的名称,而不是 DataSet1
  • 打开它,出现一个设计图面,右键单击它并添加..数据表
  • 将表重命名为 Stock
  • 右键单击它并添加.. 列,将其命名为名称
  • 添加另一个名为 Price 的列(并将数据类型设置为浮点数)
  • 切换到表单设计器
  • 打开“数据源”窗口(查看菜单、其他窗口)并将 Stock 节点从树中拖到表单上
  • datagridview、bindingnavigator、bindingsource 和 dataset 出现在表单/底部托盘中
  • 添加一个文本框并将其命名为 searchTextBox
  • 添加一个按钮并将其命名为 searchButton
  • 双击按钮添加事件处理程序并切换到代码视图
  • 在点击处理程序中添加一些代码:
    private void SearchButton_Click(obejct sender, EventArgs e){
      if(string.IsNullorWhiteSpace(searchTextBox.Text))
        stockBindingSource.RemoveFilter();
      else
        stockBindingSource.Filter = "[Name] LIKE '" + searchTextBox.Text.Replace("'", "''") + "'";
    }

  • 在构造函数中添加一些代码:
    somesensiblenameDataset.Stock.AddStockRow("Cola", 2.2);
    somesensiblenameDataset.Stock.AddStockRow("Fanta", 2.2);
    somesensiblenameDataset.Stock.AddStockRow("Ice-Tea", 3.9);
    ...

运行应用程序,输入Fanta 并单击搜索。输入F* 并点击搜索

【讨论】:

  • 非常感谢,成功了!这是一个有趣的项目,所以这对我来说绝对没问题,很抱歉这个不好的问题,这是我的第一个。
猜你喜欢
  • 1970-01-01
  • 2020-11-14
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
  • 2012-06-18
  • 1970-01-01
  • 2012-05-27
  • 2020-06-24
相关资源
最近更新 更多