【发布时间】:2011-08-18 16:15:55
【问题描述】:
我有一个 6 列的 DataGridView。
例子:
column1 column2 column3 column4 column5 column6
J6 RES-0112G 123.123 456.456 180 1111
FID2 FIDUCIAL 5.123 -50.005 90 FIDUCIAL
R100 RES-0113G 1.1 -123.123 90 1111
C12 CAP-1234H -99.99 -987.123 45 2222
Q1 CAP-1234Z -99.99 -987.123 45 4444
J3 RES-0112G 123.123 999.999 0 1111
FID1 FIDUCIAL 23.123 23.123 0 FIDUCIAL
F1 CAP-1234 -88.99 -555.111 45 DDDD
C11 CAP-1234Z -123.99 -123.123 270 abc2222
我想按特殊顺序对其进行排序。假设我想按此序列中的最后一个值 (第 6 列) 对其进行排序:
基准, 1111, 2222, DDDD, 4444
然后按 第二列 字母数字顺序对其进行第二次排序。 (注意abc2222 按“2222”而不是“abc”排序)。
所以更新后的 DataGridView 将如下所示:(对于 FIDUCIALS,我想按第 1 列而不是第 2 列排序)
column1 column2 column3 column4 column5 column6
FID1 FIDUCIAL 23.123 23.123 0 FIDUCIAL
FID2 FIDUCIAL 5.123 -50.005 90 FIDUCIAL
J6 RES-0112G 123.123 456.456 180 1111
J3 RES-0112G 123.123 999.999 0 1111
R100 RES-0113G 1.1 -123.123 90 1111
C11 CAP-1234C -123.99 -123.123 270 abc2222
C12 CAP-1234H -99.99 -987.123 45 2222
F1 CAP-1234 -88.99 -555.111 45 DDDD
Q1 CAP-1234Z -99.99 -987.123 45 4444
有人知道如何正确排序吗?我正在使用SortableBindingList<>
【问题讨论】:
-
您是否希望默认以这种方式排序,而用户无法通过单击列标题来更改排序顺序,或者您实际上希望让用户对“复合”列或他们的选择进行排序?还有,SortableBindingList的实现是什么?
-
如何处理“DDDD”?是什么让它介于“2222”和“4444”之间?
-
@Branko:我想按默认排序,这样用户就无法更改排序顺序
-
@Ahmad:我用它作为一个例子来表明我希望能够按照我想要的任何顺序进行排序
标签: c# sorting datagridview rows