none
Winform的DataGridView排序 RRS feed

  • 问题

  • 下面是一个Winform的DataGridView最后一列是数字,在点表头进行排序时,它的顺序是错的。这里是按ASCII码来排的。不是数字。
    这个要怎么处理?



    2009年11月11日 1:57

答案

  • 你好!
         可以自己指定排序模式的,具体可以参考:
    http://msdn.microsoft.com/zh-cn/library/95scxcdy%28VS.80%29.aspx
         希望对你有帮助!
    周雪峰
    • 已标记为答案 male110 2009年11月11日 6:34
    2009年11月11日 5:01
    版主
  • 在数据源中加一个字段存入金额的 ASCII 码,使用 DataGridView.Sort 或 BindingSource.Sort 对 ASCII 码所在的字段进行排序。
    知识改变命运,奋斗成就人生!
    • 已标记为答案 male110 2009年11月11日 6:34
    2009年11月11日 5:02
    版主
  • 已解决,主要是因为我在给单元格赋值时转换成字符型了。
    把它转换成double类型进行赋值,排序是正确的。
    • 已标记为答案 male110 2009年11月11日 6:34
    • 取消答案标记 male110 2009年11月11日 6:34
    • 已标记为答案 YiChun Chen 2009年11月12日 8:54
    2009年11月11日 6:34

全部回复

  • 你好!
         可以自己指定排序模式的,具体可以参考:
    http://msdn.microsoft.com/zh-cn/library/95scxcdy%28VS.80%29.aspx
         希望对你有帮助!
    周雪峰
    • 已标记为答案 male110 2009年11月11日 6:34
    2009年11月11日 5:01
    版主
  • 在数据源中加一个字段存入金额的 ASCII 码,使用 DataGridView.Sort 或 BindingSource.Sort 对 ASCII 码所在的字段进行排序。
    知识改变命运,奋斗成就人生!
    • 已标记为答案 male110 2009年11月11日 6:34
    2009年11月11日 5:02
    版主

  • 还是不明白怎么排序。
    要自定义一个DataGridView来重载Short方法吗?
    http://msdn.microsoft.com/zh-cn/library/0868ft3z%28VS.80%29.aspx
    这里怎么直接调用了SHORT,虽然我不知道DataGridView里面怎么样来自定义排序,但我记得VC下的ListView是有一个回调函数。
    这里有没有一个回调函数,用来比较两个值的大小。
    2009年11月11日 6:04
  • 你是说金额的ASCII码相加吗?
    这个好像不行吧
    59,5的ASCII码是53,9的ASCII码是57,53+57=110
    92,9的ASCII码是57,2的ASCII是50,57+50=107;

    得出的结果是59>92
    2009年11月11日 6:12
  • 已解决,主要是因为我在给单元格赋值时转换成字符型了。
    把它转换成double类型进行赋值,排序是正确的。
    • 已标记为答案 male110 2009年11月11日 6:34
    • 取消答案标记 male110 2009年11月11日 6:34
    • 已标记为答案 YiChun Chen 2009年11月12日 8:54
    2009年11月11日 6:34