我在处理同时包含文本和数字的数据排序时遇到一些困难。我正在使用数据表服务器端插件,并且我正在尝试包含自然排序插件。
我有一列包含如下数据:
Unit #1
Unit #10
Unit #2
当我对列进行排序时,它会排序,但顺序不是我希望的显示方式。这就是我需要的:
Unit #1
Unit #2
Unit #10
我看到了一些其他帖子,人们使用了这里找到的“自然排序”插件:datatables natural sort
我将 javascript 放入 main.js 文件中以实现自然排序功能。
这就是我初始化数据表的方式:
<script type="text/javascript">
var oTable = $("table.datatable_ss_1348508281").dataTable( {
"oLanguage": {"sSearch": "Search these results:"},
"aLengthMenu": [[10,20,50,100,500,1000], [10,20,50,100,500,1000]],
"sPaginationType": "full_numbers",
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "includes/units_dropdown_dt_process.php?id=1532&cont_id=unit_id",
"fnDrawCallback": function() {
//$('span.paginate_active').trigger('click');
},
"aoColumnDefs":[],
"aoColumns": [{"sType": "natural"}, null, null],
"aaSorting": [[ 0,"asc" ]],
"sScrollY": "300px",
} ).fnSetFilteringDelay(500);
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"natural-asc": function ( a, b ) {
return naturalSort(a,b);
},
"natural-desc": function ( a, b ) {
return naturalSort(a,b) * -1;
}
} );
</script>
问题是它仍然使用文本进行排序,并且不考虑数字...关于如何解决这个问题有什么想法吗?
预先感谢您的帮助!
最佳答案
据我所知,我在某处看到你必须用数值替换文本,Unit #1 变为 1
关于jquery - 数据表服务器端未正确对带有数字的文本进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12570279/