DataTables сортируются по двум столбцам с разными типами данных - PullRequest
0 голосов
/ 06 марта 2019

Есть таблица со статистикой, содержащая два столбца. Первый столбец - имя (строка), а второй - количество действий (число) Как я могу убедиться, что второй столбец является первым для сортировки? Учитывая, что значения имеют одинаковые имена, а также они отсортированы по алфавиту?

Вот мой код:

$('#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 голосов
/ 06 марта 2019

Я не совсем уверен, что вы спрашиваете, но вы можете сделать столбец 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...