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
});

谢谢!

我不确定您的要求,但是您可以将第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]

最新更新