C#使用像Excel这样的排序/过滤来Winform DataGridView

时间:2009-08-06 15:07:03

标签: c# datagridview

您好我需要一个快速的解决方案来使用Winforms DataGridView控件进行过滤/排序,就像在Excel中一样。

我已经回顾了这个领域的现有帖子,但似乎都没有满足我的需求。

我手动填充DataGridView - 没有数据绑定

5 个答案:

答案 0 :(得分:6)

DataGridView列已经支持排序。

我将使用您的数据填充DataTable,然后将DataGridView绑定到myDataTable.DefaultView。

您可以通过设置myDataTable.DefaultView.RowFilter来过滤显示的行。

您可以将文本框和/或组合框放在DataGridView上方,并在输入/选择更改时更新myDataTable.DefaultView.RowFilter。

答案 1 :(得分:5)

如果您正在寻找类似过滤功能的Excel,请查看以下文章: http://msdn.microsoft.com/en-us/library/aa480727.aspx

答案 2 :(得分:1)

你想要这样的东西吗?

Excel Filtering

DataGridView-AutoFilter 是一个现成的 Nuget 包,您只需要下载它并按照 this 文章进行操作,这是一种简单且增强的方法。

答案 3 :(得分:0)

为什么不使用廉价的第三方组件?即使你买它,最终它可以真正省钱。 This DataGridView alternative with autofilter工作速度非常快,未绑定模式是其主要工作模式。另外,它支持Excel风格的AutoFilter。

答案 4 :(得分:-1)

Microsoft has created a sample project(针对VB和C#),其中展示了如何创建所谓的“自动过滤器”插件。我个人不喜欢它,因为它只允许精确过滤,这样产品和客户才能使用,打开未执行价格>某些值的发票

排序使用以下方法实现:

foreach (DataGridViewColumn column in MyDataView.Columns)
{
      column.SortMode = DataGridViewColumnSortMode.Automatic;
}

在网格具有列的情况下执行此操作,如果在绑定后自动创建列…