数据表默认排序不起作用

Posted

技术标签:

【中文标题】数据表默认排序不起作用【英文标题】:datatable default sorting not working 【发布时间】:2017-07-25 04:40:19 【问题描述】:

我在我的 rails 应用程序中使用 jquery 数据表。我想将默认顺序添加到特定列。我有下面的jquery代码,

    $(document).ready(function()
        $('#sample-table-2').DataTable(
            responsive: true,
            "pagingType": "simple",
            bJqueryUI: true,
            bServerSide: true,
      "aaSorting": [[ 4, "asc" ]], // 
            sAjaxSource: $('#sample-table-2').data('source'),
            "columnDefs": [
                 "width": "10%", "targets": column_count 
              ]
        )
        .on( 'order.dt',  function ()  eventFired( 'Order' );  )
        .on('page', function () setTimeout(function()hideCellsOnMobile();,1000) )
        .on( 'search.dt', function () setTimeout(function()hideCellsOnMobile();,1000));
        $("table#sample-table-2").parent().addClass("no-padding")
);

但是这个默认排序没有得到应用。

【问题讨论】:

Targets 根据文档需要一个数组,所以你可能想试试 "width": "10%", "targets": [ column_count] 【参考方案1】:

你用的是什么版本?你可以试试这个吗?

$(document).ready(function()
        $('#sample-table-2').DataTable(
            responsive: true,
            "pagingType": "simple",
            bJqueryUI: true,
            bServerSide: true,
            order: [[ 4, "asc" ]], // 
            sAjaxSource: $('#sample-table-2').data('source'),
            "columnDefs": [
                 "width": "10%", "targets": column_count 
              ]
        )
        .on( 'order.dt',  function ()  eventFired( 'Order' );  )
        .on('page', function () setTimeout(function()hideCellsOnMobile();,1000) )
        .on( 'search.dt', function () setTimeout(function()hideCellsOnMobile();,1000));
        $("table#sample-table-2").parent().addClass("no-padding")
);

【讨论】:

以上是关于数据表默认排序不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Android Room Dao:按 CASE 排序不起作用

排序在 jQuery 数据表中不起作用

冒泡排序不起作用

嵌套的可排序 JQuery 列表在 IE 中不起作用,而在 FF 中起作用

数据表的排序在laravel中不起作用

DataTables ServerSide 排序不起作用 - mDataProp