在 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 与组合框列显示 System.Data.DataRowView 而不是 DisplayMember
C# Windows 窗体(非 SQL):在新窗体上用整数 +1 填充 DataGridView 行中当前最高数字的文本框