.Net Gridview Alpha排序,需要进行数字排序

时间:2020-03-05 18:57:51  来源:igfitidea点击:

这是我的第一个真正的问题,即.NET世界中是否需要任何Gridview专家。

我从后台代码创建一个Gridview,并且在列中保存了一堆数字数据。虽然,但我确实在codebehind的数字字段中添加了逗号。当我将其加载到Gridview时,我启用了排序功能,但由于我添加了这些逗号,因此gridview选择了ALPHA排序而不是数字排序。

所以我需要帮助。有人愿意试一试吗?我需要将gridview中的某些列更改为数字排序,而不是它使用的alpha排序。

解决方案

回答

我相信我们可以提供自己的比较器对象以对gridview进行排序。只是暗示IComparer。这是一篇文章:

Gridview Guy文章

回答

如果我们最终实现了自己的比较器并将其按字符串排序,则"正确"对待数字的算法称为自然排序。杰夫在这里写了一篇很好的文章:

http://www.codinghorror.com/blog/archives/001018.html

我们可以在Chere中找到一个很好的实现:
http://www.codeproject.com/KB/string/NaturalSortComparer.aspx

回答

根据确切的排序方式,可以使用上述方法之一,或者如果列实际上是数字类型,则可以返回到DB并在那里完成排序,然后再添加修饰。

回答

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);
});

回答

相反,我只是诉诸于JQUERY表排序器。

可以在这里找到:tablesorter