Jquery TableSorter 2.0 - Восстановить порядок сортировки

Все,

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

Спасибо


person Balu    schedule 11.11.2009    source источник


Ответы (2)


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

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

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

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

Идея состоит в том, чтобы скопировать таблицу перед применением плагина 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 или чего-то еще, но работает)

person jitter    schedule 12.11.2009

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

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

                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>";

Любые идеи по исправлению этого?

Спасибо

person Balu    schedule 12.11.2009