以编程方式对DataGridView单元格进行排序

时间:2011-04-30 14:04:38

标签: c# .net sorting programming-languages datagridview

我有一个名为DGV的datagridview,我正在尝试使用sort函数以编程方式对第一个单元格进行排序:

DGV.Sort(Rang, System.ComponentModel.ListSortDirection.Descending);

但是在输出上我有这个:

1,10,100,11,12,...,19,2,20,21,......

我已经将Rang单元格的SortMode设置为Programmatic,但我总是输出这个。

有什么问题? !

感谢。

1 个答案:

答案 0 :(得分:2)

似乎是基于 place 值进行排序,这是string数据类型的排序方式。您需要确保排序的列是int

编辑: 如果您要尝试解析字符串值,我建议使用TryParse( )方法。以下是Comparer 可能的示例:

    int Compare ( object obj1, object obj2  )
    {
        IComparer _comparer = Comparer.Default;
        int val1, val2;

        if (!Int32.TryParse ( obj1.ToString ( ), out val1 ))
            return -1;

        if (!Int32.TryParse ( obj2.ToString ( ), out val2 ))
            return -1;

        return _comparer.Compare ( val1, val2 );
    }