0

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

我从代码隐藏创建了一个 Gridview,我在列中保存了一堆数字数据。虽然,我确实在代码隐藏的数字字段中添加了逗号。当我将它加载到 Gridview 时,我打开了排序功能,但是 gridview 选择 ALPHA 排序而不是数字排序,因为我添加了这些逗号。

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

4

5 回答 5

1

如果您最终实现了自己的比较器并将它们排序为字符串,则“正确”处理数字的算法称为自然排序。杰夫在这里写了一篇很好的文章:
人类排序:自然排序顺序

你可以在这里找到一个很好的 C# 实现:http:
//www.codeproject.com/KB/string/NaturalSortComparer.aspx

于 2008-09-17T03:59:39.203 回答
0

根据您进行排序的确切方式,您可以使用上述方法之一,或者如果列实际上是数字类型,您可以返回数据库并在那里完成排序,然后稍后将您的装饰添加到它。

于 2008-09-17T05:47:46.103 回答
0

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);
});
于 2008-09-18T22:00:19.940 回答
0

相反,我只是使用了 JQUERY 表排序器。

可以在这里找到:tablesorter

于 2009-03-20T22:45:16.060 回答
0

我意识到这确实很旧,但是您将数据与演示文稿混合在一起;这就是搞砸了。从 SQL 中取出数字而不添加逗号,然后在表示层中添加它们。

于 2012-01-27T17:49:19.763 回答