DataTable按具有不同数据类型的两列排序

时间:2019-03-06 07:00:13

标签: javascript jquery datatables

有一个包含两列的统计信息的表。 第一列是-名称(字符串),第二列是操作数(数字) 如何确定第二列是要排序的第一列?假设这些值具有相同的名称,并且它们也按字母顺序排序?

这是我的代码:

$('#clickouts-table').DataTable({
  // eslint-disable-line new-cap
  processing: false,
  stateSave: true,
  responsive: true,
  iDisplayLength: 25,
  order: [[1, 'desc']],
  columnDefs: [{
    targets: [0],
    orderData: [1, 1]
  }, {
    targets: [1],
    orderData: [1, 1]
  }],
  sDom: `<'row top-row'<'col-sm-2 col-xs-2 col-xxs-12'f><'col-sm-2 col-xs-2 col-xxs-12'l>
        <'col-sm-8 col-xs-8 col-xxs-12 custom-button'>>
        <'row'<'col-sm-12'tr>>
        <'row'<'col-sm-12'<'table-bottom-toolbar clearfix'ip>>>`,
  columns: [
    { data: 'userName', name: 'userName' },
    { data: 'count', name: 'count' }
  ],
  data: data
});

谢谢!

1 个答案:

答案 0 :(得分:0)

我不确定您要问的是什么,但是您可以将列0设置为字符串,将列1设置为数字,如下所示:

columnDefs: [{
    targets: [0],
    orderData: [1, 0],
    type: "html"
  }, {
    targets: [1],
    orderData: [1, 0],
    type: "num"
  }],

请参阅:https://datatables.net/reference/option/columns.type

此外,如果第1列的数字匹配,则应将第0列定义为辅助排序选项:

order: [[1, 'desc'], [0, 'asc']]
...
orderData: [1, 0]