对datagridview中的行的子集进行排序

时间:2009-06-18 15:05:50

标签: c# datagridview sorting

我正在尝试将c#中的datagridview组合在一起,它可以处理分层数据(目前只有2个级别),因为我找不到第三方控件,它可以完全按照我需要的方式运行。

我设法扩展/崩溃和全局排序工作(按顶级组排序,然后在每个组内排序)但我想添加一个功能,您可以在顶级组中进行排序。想象一下2列示例,例如

    column1     | column2
    group 1     |  6
      group 1 a |  1
      group 1 b |  2
      group 1 c |  3
    group 2     |  15
      group 2 a |  4
      group 2 b |  5
      group 2 c |  6

我希望用户能够双击“15”单元格,并让它只对“组2 X”行进行排序,其他所有行都保持原样。每个单元格的标签告诉它它的父级是什么,所以我知道给定的行对是否属于同一个子组。但我无法弄清楚逻辑。我尝试为不在同一组中的任何行设置SortResult = 0,但我仍然需要处理一行在子组中而另一行不在的情况。任何想法?

2 个答案:

答案 0 :(得分:1)

您可以将数据网格放在列中。我认为这将实现你的目标

答案 1 :(得分:0)

想通了 - 我有一个&&条件我应该有一个|| ... 基本上,如果要比较的那对行中的任何一个不在同一个子组中,只需设置SortResult以反映当前显示哪一个在另一个之前,确保根据升序或降序排序结果。如果两个行都在同一个子组中,那么就像往常一样排序。现在要清理我乱糟糟的代码:)