在 Datagridview 中分组

Posted

技术标签:

【中文标题】在 Datagridview 中分组【英文标题】:Group by in Datagrid View 【发布时间】:2011-04-30 01:43:41 【问题描述】:

我有一个场景,我必须按城市名称对 PinCode 进行分组,就像一个城市可以有多个 pincode。

我必须在 datagrid 中的 winform 中执行此操作。我该如何在数据网格中执行此操作,我可以在城市之前看到 + 和 -。

我认为它可以通过嵌套网格来完成。请帮忙。


A 列 | B栏| C栏

国家 邮政编码 | 10,00 | 15,00 邮政编码 | 10,00 | 15,00 国家 邮政编码 | 10,00 | 15,00 邮政编码 | 10,00 | 15,00

谢谢。 希瓦姆

【问题讨论】:

【参考方案1】:

你看过 CodeProject 上的OutlookGrid 吗?

这看起来可以让您展开和折叠单个行以及控制排序顺序。因为它扩展了内置的DataGridView控件,甚至支持数据绑定!

但是,目前似乎没有实现嵌套分组,但如果您认为数据的替代表示不合适,您可以考虑自己修改源代码以添加该功能。

【讨论】:

嗨,格雷,感谢您的回复。我正在使用 Outlook 网格,我只想要第一级分组。如果我在 Outlook 网格中遇到问题,将再次与您联系。希望 ypo 能帮助我..提前谢谢【参考方案2】:

DataGridView 控件不支持可展开/可折叠的行或嵌套表。您必须使用第三方控件来实现此目的。

或者,看看this article,它详细说明了如何对现有控件进行子类化。但是,此解决方案不支持数据绑定,这可能会限制其实用性。

【讨论】:

但是您发送给我的链接正在运行,但我无法下载该项目..使用页面内的 (windowsforms.net/blogs/markrideout/treegridview.zip) 看起来下载不再可用(首次发布于 2006 年)。我只有原始代码的大量修改版本,所以很遗憾我无法提供进一步的帮助。我建议您查看第三方网格控件。【参考方案3】:

一般概念/逻辑是,创建两个不同的数据表,当然至少有一个公共字段是它们的关系。然后,在数据集中添加或混合这两个数据表。然后通过声明和初始化一个数据关系来创建两个数据表的数据关系。最后,将它绑定到 Datagridview 的数据源。

【讨论】:

【参考方案4】:

使用 TreeView 对数据进行分组。

【讨论】:

以上是关于在 Datagridview 中分组的主要内容,如果未能解决你的问题,请参考以下文章

将 DataTable 绑定到已定义列的 Datagridview

怎么让datagridview不自动修改绑定的datatable

在 Datagridview 中分组

DataGridView 与组合框列显示 System.Data.DataRowView 而不是 DisplayMember

C# Windows 窗体(非 SQL):在新窗体上用整数 +1 填充 DataGridView 行中当前最高数字的文本框

C#中如何对datagridview 表格中的数据进行筛选,查找包含某个字段的行数据,求范例代码 感谢啊。