Jquery TableSorter 2.0 - порядок обратной сортировки - PullRequest
0 голосов
/ 12 ноября 2009

All

Я использую плагин JQuery TableSorter. Таблица отлично сортируется по выбранным столбцам. Учтите, что при загрузке страницы сортировка не происходит. Теперь, если таблица отсортирована по одному столбцу, она сортируется. Теперь, щелкнув ссылку «Восстановить сортировку» за пределами таблицы, сортировщик таблиц должен вернуться к исходному порядку сортировки, даже если раньше он сортировал несколько кумнов. Как мы можем этого добиться?

Спасибо

Ответы [ 2 ]

1 голос
/ 12 ноября 2009

Итак, под " сортировка не происходит ", вы имеете в виду, что вы просто делаете

$("#myTable").tablesorter();

А после нажатия на ссылку вы хотите, чтобы таблица выглядела сразу после этого вызова без сортировки?

Я не думаю, что есть простой способ сделать это. Но я предлагаю взломать, как это можно сделать, но будьте осторожны, в зависимости от размера таблицы, это может занять много памяти браузера.

Идея состоит в том, чтобы скопировать таблицу перед применением плагина tableorter. Позже при нажатии на ссылку просто восстановите таблицу как есть и повторно примените TableSorter. например,

var tablebackup;
$(document).ready(function() {
  tablebackup = $("#myTable").clone();
  $("#myTable").tablesorter();
});

function resetTable() {
  tablebackup.clone().insertAfter("#myTable");
  $("#myTable").remove();
  $("#myTable").tablesorter();
}

Проверьте это для полного рабочего примера http://jsbin.com/ujiko (нет CSS или что-нибудь, но работает)

0 голосов
/ 12 ноября 2009

Спасибо большое .. Работает как шарм, если на странице есть одна таблица. Если у меня есть вложенные вкладки с таблицей в каждой, это работает только для таблицы на последней вкладке.

Ниже приведен код PHP, который я должен сгенерировать этот JS на лету при создании вложенных вкладок JQuery UI:

                echo '<script type="text/javascript">';
                echo 'function resetTable() {';
                echo 'tablebackup.clone().insertAfter("#table'.$i.'");';
                echo '$("#table'.$i.'").remove();';
                echo '$("#table'.$i.'").tablesorter({widthFixed: true, widgets: [\'zebra\']})
                      .tablesorterPager({container: $("#pager'.$i.'")});';
                echo '}';

                echo '$(document).ready(function() {';
                echo "$('#fragment-2').tabs();";
                echo 'tablebackup = $("#table'.$i.'").clone();';
                echo '$("#table'.$i.'").tablesorter({widthFixed: true, widgets: [\'zebra\']})
                      .tablesorterPager({container: $("#pager'.$i.'")});';                    
                echo "});";
                echo "</script>";

Есть идеи как это исправить?

Спасибо

...