Как заставить jQuery Tablesorter сортировать таблицы по убыванию по умолчанию?

StackOverflow https://stackoverflow.com/questions/1614390

  •  06-07-2019
  •  | 
  •  

Вопрос

Я не могу этого понять.Этот вопрос также был задан здесь http://www.nabble.com/TableSorter-plugin---default-column-sort-DESC-instead--How--to25180761s27240.html#a25180761 без ответа.

Я пытался

    $.tablesorter.defaults.sortInitialOrder = 'desc';

и изменяем файл jquery.tablesorter.js по умолчанию на 'desc', но это не работает.Когда я нажимаю на заголовки столбцов, первая сортировка по-прежнему выполняется по возрастанию, поэтому пользователю приходится дважды щелкнуть, чтобы уменьшить значения.

Как я могу заставить Tablesorter сортировать по убыванию по умолчанию?

Это было полезно?

Решение

Похоже на ошибку в коде tablesorter, или я неправильно понимаю, что должен делать параметр sortInitialOrder.В строке 536 он устанавливает порядок сортировки, просматривая количество раз, когда столбец был отсортирован, и принимая значение mod 2.При этом также следует учитывать значение параметра sortInitialOrder.

Измените строку 536 с

this.order = this.count++ % 2;

Для

this.order = this.count++ == 0 ? this.order : (1 - this.order);

И добавьте после этой строки (чтобы при первом нажатии на другой столбец вы получили значение по умолчанию)

$headers.not($cell).each( function() {
    this.count = 0;
});

и измените строку 421 с

o.count = s[1];

Для

o.order = o.count = s[1];

таким образом, начальный порядок переопределяется, если применяется список сортировки.

Затем вы можете использовать параметр sortInitialOrder для tablesorter, чтобы настроить первый порядок сортировки по умолчанию для столбца.Любой порядок, указанный в sortList, переопределит sortInitialOrder, указанный для всей таблицы.

Обратите внимание, что это относится к Tablesorter 2.0.

Другие советы

Попробуйте последнюю версию с сайта TableSorter - похоже, это исправлено где-то между версиями 2.0.3 и 2.0.5.

<script type="text/javascript">
$(document).ready(function() 
    { 
        $("#theTable").tablesorter({ 
            sortInitialOrder: 'desc',
            sortList: [[3,1]] // etc.

    }); 
    } 
); 
</script>

... это работало с последней версией TableSorter, но не с предыдущей версией, которую я имел. Надеюсь, это поможет!

Просто используйте это, второй элемент в массиве - это порядок сортировки (0 = по возрастанию, 1 = по убыванию):

.tablesorter({ sortList: [[0, 1]] });
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top