Javascript 如何在数据表中启用排序(延迟加载)?

Javascript 如何在数据表中启用排序(延迟加载)?,javascript,jquery,datatables,datatables-1.10,Javascript,Jquery,Datatables,Datatables 1.10,数据表1.10.12 排序对我的实现不起作用。我使用延迟加载数据 如何使分拣工作 var hash_table = $('#hash_table'); var data_table = hash_table.DataTable({ processing: true, serverSide: true, deferLoading: 100, ordering: true, order: [[ 0, 'asc' ]], ajax: { url: 'get_hashes

数据表1.10.12

排序对我的实现不起作用。我使用延迟加载数据

如何使分拣工作

var hash_table = $('#hash_table');
var data_table = hash_table.DataTable({
  processing: true,
  serverSide: true,
  deferLoading: 100,
  ordering: true,
  order: [[ 0, 'asc' ]],
  ajax: {
    url: 'get_hashes/',
    type: 'POST',
  },
  columns: [
    {'title': 'BRC ID', 'data': 'brc_id'},
    {'title': 'HASH', 'data': 'hash'}
  ],
  dom: 'Brtip',
  buttons: [
    {
      extend: 'excel',
      title: 'report',
      text: 'Export',
      extension: '.xlsx'
    }
  ]
});
data_table.draw();
如果单击列标题中的排序图标,结果不会改变

截图:

试着在buttons元素之后添加这个,我用它来排序datatables,datatables用javascript覆盖db排序

"aaSorting": [  [1,'desc'],  [2,'desc'], [0,'desc'] ],

对于延迟数据表,排序必须在服务器端执行。 Datatables插件只向服务器发送指令,通知排序顺序(
asc,desc
)和要排序的列的索引。为此定义了两个特殊键:
order[i][dir]
order[i][column]

下面是Python函数的一个示例,该函数查找用户单击并排序的列的名称:

def get_sortable_coll_name(message):
    colls = {
        '1': 'date',
        '3': 'project',
        '4': 'project_id',
        '5': 'total_matches',
        '6': 'successful_matches',
        '7': 'failed_matches',
        '8': 'status'
    }   

    if message['order[0][dir]'] == 'asc':
        return '-' + colls[message['order[0][column]']]
    else:
        return colls[message['order[0][column]']]
然后,您可以在从Django模型获取对象的过程中进行排序:

sortable_coll = get_sortable_coll_name(message)
objects = Model.objects.filter(task=task).order_by(sortable_coll)

这并不能回答这个问题。一旦你有足够的钱,你将能够;相反这确实提供了一个答案,因为这是我用来在datatables中排序的内容。您确定要使用datatables延迟加载数据吗<代码>排序是1.9版本的传统选项,在1.10+中有
顺序
选项。我这样使用它:[[1,“asc”],但它不能为我启用排序。我们使用的是旧版本,抱歉,您看过数据顺序了吗