jquery - 数据表服务器端未正确对带有数字的文本进行排序

标签 jquery datatable

我在处理同时包含文本和数字的数据排序时遇到一些困难。我正在使用数据表服务器端插件,并且我正在尝试包含自然排序插件。

我有一列包含如下数据:

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/

相关文章:

javascript - Highcharts:如何消除堆叠条形/列之间的微小空间

javascript - jQuery cookie 将 bool 值设置为字符串

javascript - 从ajax接收多个变量并使用php将其写入文本文件

c# - 尽管数据表存储在缓存中,但每次使用后是否都必须调用 dispose?

c# - 在执行 select 子句之前检查列是否存在

javascript - 当相对于浏览器窗口没有可用的水平空间时,以相反方向打开 CSS 子菜单

php - Ajax 无法在 Codeigniter 中运行

c# - 从数据表创建 Excel 工作表

angular - 使用多个服务来填充 Angular 数据表

mysql仅授予对一个表及其某些列的选择权限