我在一个带有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' ]]
按照降序设置了图标,但记录的实际顺序没有变化,每个新记录看似在表格的某处随机附加。
根据this link上的答案尝试aaSorting : []
选项,但没有变化
答案 0 :(得分:0)
更新:
找出订单没有发生的原因。
问题出在.datatables_extended({
函数中。
一旦我将其更改为.DataTable({
,然后创建serverSide: false
,然后列出要进行排序的列,它就开始工作了。