我正在使用jquery DataTable作为数据网格。我需要帮助来排序可能是字母和数字组合的列值。在排序时,我必须优先考虑字母前的数字。
$(document).ready(function() {
$('#example').dataTable();
});
在列Browser
的此示例中,ASC
订单的结果应如下所示:
abc21
bbc22
abc23
bbc26
abc29
abc31
首先按编号排序。
答案 0 :(得分:0)
您应该可以使用Formatted Numbers
自定义排序插件,该插件位于Datatables Plugin Section
基本上,在对该列进行排序时,请调用以下代码。
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"formatted-num-pre": function ( a ) {
a = (a === "-" || a === "") ? 0 : a.replace( /[^\d\-\.]/g, "" );
return parseFloat( a );
},
"formatted-num-asc": function ( a, b ) {
return a - b;
},
"formatted-num-desc": function ( a, b ) {
return b - a;
}
} );
通过在表的初始化代码中设置aoColumns
对象,告诉数据表使用此类
$(document).ready(function() {
$('#example').dataTable( {
"aoColumns": [
null, // each of these = a column in your table
null,
null,
// this column, 4th, will be sorted usig the plugin
{ "sType": "formatted-num-pre" },
null
]
} );
} );
同一页面上还有一个Natural sorting
插件,可能有所帮助。
最终,您可以按照示例创建自己的插件。