订购不适用于JQuery数据表

时间:2017-11-26 06:57:04

标签: javascript jquery ajax datatables

我在一个带有AJAX调用的页面上绘制了一个数据表。 我需要订购内容,以便默认情况下最新的条目位于顶部。但即使参数已经改变,订单似乎也没有变化,记录随机列出。

var InitiateViewOption = null;
var deviceId = null;
var deviceType = null;
var fromTime = null;
var toTime = null;
var keys = null;

function drawTable(from, to) {
    var device = $("#device-details");
    deviceId = device.data("deviceid");
    deviceType = device.data("devicetype");
    keys = device.data("attributes").split(",");
    fromTime = from * 1000;
    toTime = to * 1000;
    if ( $.fn.dataTable.isDataTable( '#stats-table' ) ) {
        var table = $('#stats-table').DataTable();
        table.clear().draw();
        table.ajax.reload();
    }
    else {
        $("#stats-table").datatables_extended({
            serverSide: true,
            processing: true,
            searching: false,
            ordering: true,
            pageLength: 100,
            order: [[ 0, 'desc' ]],
            ajax: {
                url: "/devicemgt/api/stats/paginate",
                data: buildAjaxData
            }
        });
    }
}

function buildAjaxData (){
    var settings = $("#stats-table").dataTable().fnSettings();

    var obj = {
        //default params
        "draw" : settings.iDraw,
        "start" : settings._iDisplayStart,
        "length" : settings._iDisplayLength,
        "columns" : "",
        "order": "",
        "deviceType" : deviceType,
        "deviceId" : deviceId,
        "from": fromTime,
        "to"  : toTime,
        "attributes" : JSON.stringify(keys)
    };

    return obj;
}

虽然使ordering : true确实启用了表格标题附近的图标,order: [[ 0, 'desc' ]]按照降序设置了图标,但记录的实际顺序没有变化,每个新记录看似在表格的某处随机附加。

enter image description here

根据this link上的答案尝试aaSorting : []选项,但没有变化

1 个答案:

答案 0 :(得分:0)

更新: 找出订单没有发生的原因。 问题出在.datatables_extended({函数中。 一旦我将其更改为.DataTable({,然后创建serverSide: false,然后列出要进行排序的列,它就开始工作了。