jquery datatable 排序问题
见图,排序出现问题.
请高手指教,如何满足字符加数字的排序功能(使用的是jquery datatable插件).万分感谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
见图,排序出现问题.
请高手指教,如何满足字符加数字的排序功能(使用的是jquery datatable插件).万分感谢!
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(8)
jQuery.fn.dataTableExt.oSort['numeric-comma-asc'] = function(a,b) {
a = a.replace(/[ ]/g,"")
b = b.replace(/[ ]/g,"")
if(a.indexOf(",") != -1){a = a.replace(/,/g, "")}
if(b.indexOf(",") != -1){b = b.replace(/,/g, "")}
if(a.indexOf("'") != -1){a = a.replace(/'/g, "")}
if(b.indexOf("'") != -1){b = b.replace(/'/g, "")}
if(a.indexOf(" ") != -1){a = a.replace(/ /g, "")}
if(b.indexOf(" ") != -1){b = b.replace(/ /g, "")}
var a1 = a.slice(0,3)
var a2 = a.slice(3)
var b1 = b.slice(0,3)
var b2 = b.slice(3)
return ((a1 < b1) ? -1 : ((a1 > b1) ? 1 : (parseFloat(a2) < parseFloat(b2)) ? -1 : (parseFloat(a2) > parseFloat(b2)) ? 1 : 0))
};
jQuery.fn.dataTableExt.oSort['numeric-comma-desc'] = function(a,b) {
a = a.replace(/[ ]/g,"")
b = b.replace(/[ ]/g,"")
if(a.indexOf(",") != -1){a = a.replace(/,/g, "")}
if(b.indexOf(",") != -1){b = b.replace(/,/g, "")}
if(a.indexOf("'") != -1){a = a.replace(/'/g, "")}
if(b.indexOf("'") != -1){b = b.replace(/'/g, "")}
if(a.indexOf(" ") != -1){a = a.replace(/ /g, "")}
if(b.indexOf(" ") != -1){b = b.replace(/ /g, "")}
var a1 = a.slice(0,3)
var a2 = a.slice(3)
var b1 = b.slice(0,3)
var b2 = b.slice(3)
return ((a1 < b1) ? 1 : ((a1 > b1) ? -1 : (parseFloat(a2) < parseFloat(b2)) ? 1 : (parseFloat(a2) > parseFloat(b2)) ? -1 : 0))
};
// 以上是我自定义的排序方法
//这里开始初始化
$('#example').dataTable({
'aoColumns': [
{'sTitle':'Counter part'},
{'sTitle':'Type'},
{'sTitle':'Amount', 'sType': 'numeric-comma'}, //这里指定那一列使用自定义排序方法
{'sTitle':'Converted amount', 'sType': 'numeric-comma'},
{'sTitle':'All in amount', 'sType': 'numeric-comma'},
{'sTitle':'All-in rate'},
{'sTitle':"Bank's all-in rate"},
{'sTitle':'Trade date'},
{'sTitle':'Value date'},
{'sTitle':'Reference'},
{'sTitle':'Status'}
];
});
贴上已经代码
@daiyp
问题已经解决了,如果有谁遇到同样的问题,可以@我,无条件贴代码
不是,可以只看CHF类型的,不用管EUR类型的.
你是说转换为统一币别后排序吧?增加一列转换到同币别的列不就好了。
谢谢你的回答,但就算是在后台排好序了,如果点击Amount还是会打乱你后台排好的顺序,再就是这一列的数据在后台经过比较复杂的处理,不适合在后台排序.
数据肯定是来自后台的嘛 你可以在后台做排序哦