datagrid本地排序

1.datagrid 本地排序

     $("#realdataForm"+index).datagrid({

           fitColumns:true,
           autoRowHeight:true,
           singleSelect : true,
           sortName:'name',
           sortOrder:'desc',
           remoteSort:false,
           rownumbers:true,
          columns:[[
                   {field:"code",title:"编号",align:'center',hidden:'true'},
                  {field:"lastvalue",title:"数量(mm)",sortable:true,align:'center',width:'10%',formatter :number_NUll,sorter:numberSort},
                  ]],

    }
});

EasyUI Datagrid 前端排序默认采用字符串排序(String类型)。此时不是按照数值的大小排序,而是按照最前面一个数值的大小排序。

例如:12.03,3.0,如果是降序,它的排序是3.0   然后才是12.03。这种排序显然不是我们要的。所以可以采用自定义排序sorter.在columns要排序的字段加上自定义的排序,可以字符串转化float型.

function numberSort(a,b){

   var  a1 = parseFloat(a);

   var a2 = parseFloat(b);

      return ( a1 >  a2 ? 1:-1);

}

这样排序才会达到预期的效果.

下面是EasyUI API中sorter的例子:

  1. $('#dg').datagrid({
  2.      remoteSort: false,
  3.      columns: [[
  4.               {field:'date',title:'Date',width:80,sortable:true,align:'center',
  5.                     sorter:function(a,b){
  6.                                     a = a.split('/');
  7.                                     b = b.split('/');
  8.                                     if (a[2] == b[2]){
  9.                                              if (a[0] == b[0]){
  10.                                                    return (a[1]>b[1]?1:-1);
  11.                                                  } else {
  12.                                                    return (a[0]>b[0]?1:-1);
  13.                                                }
  14.                                     } else {
  15.                                         return (a[2]>b[2]?1:-1);
  16.                                     }
  17.                               }
  18.                             }
  19.                          ]]
  20. });

 

posted on 2017-06-21 15:06  cxdao  阅读(827)  评论(0编辑  收藏  举报

导航