这是我第一个需要任何Gridview专家在.NET世界中的真正问题。.Net Gridview alpha排序,它需要进行数字排序
我从代码隐藏创建一个Gridview,我在列中持有一堆数字数据。虽然,我确实在代码隐藏的数字字段中添加了逗号。当我将它加载到Gridview时,我打开了排序功能,但Gridview选择ALPHA排序而不是按数字排序,因为我添加了这些逗号。
所以我需要帮助。任何人愿意给这个一个镜头?我需要将gridview中的一些列更改为数字排序,而不是使用它的alpha排序。
这是我第一个需要任何Gridview专家在.NET世界中的真正问题。.Net Gridview alpha排序,它需要进行数字排序
我从代码隐藏创建一个Gridview,我在列中持有一堆数字数据。虽然,我确实在代码隐藏的数字字段中添加了逗号。当我将它加载到Gridview时,我打开了排序功能,但Gridview选择ALPHA排序而不是按数字排序,因为我添加了这些逗号。
所以我需要帮助。任何人愿意给这个一个镜头?我需要将gridview中的一些列更改为数字排序,而不是使用它的alpha排序。
相反,我刚使出JQUERY表分拣机。
可以在这里找到:tablesorter
我相信你可以提供自己的比较器对象来排序gridview。只是暗示IComparer。下面是一个文章:
如果最终实现自己的比较器,并将它们分类为字符串,该算法用于治疗数“适当”被称为自然排序。杰夫上写了一个相当不错的入门这里:
http://www.codinghorror.com/blog/archives/001018.html
你可以在C#在这里一个很好的实现: http://www.codeproject.com/KB/string/NaturalSortComparer.aspx
这依赖于你是如何做的排序,你可以使用的一个上面的方法,或者如果列实际上是一个数字类型,则可以返回到数据库并在那里完成排序,然后稍后将其添加到它。
P-Invoke是你的朋友。
[DllImport("Shlwapi.dll", CharSet = CharSet.Unicode)]
private static extern int StrCmpLogicalW(string psz1, string psz2);
然后,你可以使用它作为你自己的比较器。
例如(在VS2005)
Array.Sort(tringArray, delegate(string left, string right)
{
return StrCmpLogicalW(left, right);
});
我意识到这是真的老了,但你混合的呈现数据;那就是搞砸了。从SQL中取出数字而不添加逗号,然后将它们添加到表示层中。