刚在准备面试,遇到个问题,我认为我的程序没错,最后终于找到原因了,就是排序的问题。
假设表格里有若干列,其中的某列全是数字,数字应该是连续的。比如,初始顺序如下:
1,2,3,4,5,6,7,8,9,10,11,12,13,14
第一次点击该列的时候,程序用DESC排序,变为了:
9,8,7,6,5,4,3,2,14,13,12,11,10,1
第二次点击该列,程序用ASC排序,成为了:
1,10,11,12,13,14,2,3,4...
我当前排序用的代码如下:
dataview dv = new dataview(dt);
dv.Sort = SortExpression + " " + sortDirection;
现在想请教一下,dv.Sort有没有办法对某列进行数字进行大小排序呢?
两个思路:
一:
ds.Tables[0].Columns.Add( "iPersonOrderSort ",System.Type.GetType( "System.Int32 "));
ds.Tables[0].Columns[ "iPersonOrderSort "].Expression = "Convert(iPersonOrder, 'System.Int32 ') ";
DataView dv = ds.Tables[0].DefaultView;
dv.Sort = "iPersonOrderSort ";
二:
你这个排序很怪哦,正排倒排不一样...