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的例子:
- $('#dg').datagrid({
- remoteSort: false,
- columns: [[
- {field:'date',title:'Date',width:80,sortable:true,align:'center',
- sorter:function(a,b){
- a = a.split('/');
- b = b.split('/');
- if (a[2] == b[2]){
- if (a[0] == b[0]){
- return (a[1]>b[1]?1:-1);
- } else {
- return (a[0]>b[0]?1:-1);
- }
- } else {
- return (a[2]>b[2]?1:-1);
- }
- }
- }
- ]]
- });