2009-11-11 9 views
0

Tous,Jquery TableSorter 2.0 - Rétablir l'ordre de tri

J'utilise le plug-in JQuery TableSorter. La table trie bien pour les colonnes sélectionnées. Considérez que lorsque la page se charge, il n'y a pas de tri. Maintenant, si la table est triée par une colonne, elle trie. Maintenant, en cliquant sur un lien "Sortir le tri" en dehors de la table, le classeur doit revenir à l'ordre de tri initial, même s'il a déjà trié plusieurs appels. Comment pouvons-nous y parvenir?

Merci

Répondre

1

donc par « il n'y a pas de tri qui aura lieu » vous voulez dire que vous venez de faire

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

Et après un clic sur un lien que vous voulez la table ressemble juste après cette appel sans tri fait?

Je ne pense pas qu'il existe un moyen facile de le faire. Mais je fournis un hack comment cela pourrait être fait, mais méfiez-vous en fonction de la taille de votre table cela pourrait utiliser une bonne quantité de mémoire du navigateur.

L'idée est de copier la table avant d'appliquer le plugin tablesorter. Plus tard, lorsque vous cliquez sur le lien, il vous suffit de restaurer la table telle qu'elle était et de la réappliquer. par exemple.

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

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

Vérifiez cela pour un exemple de travail complet http://jsbin.com/ujiko (pas ou quoi que ce soit, mais css œuvres)

0

Merci un tas .. Il fonctionne comme un charme s'il y a une table sur la page. Si j'ai des onglets imbriqués avec une table dans chacun, cela semble fonctionner uniquement pour la table dans le dernier onglet.

Voici le code PHP Je dois générer ce JS à la volée lorsque les onglets de l'interface utilisateur JQuery imbriquées sont générées:

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

Toutes les idées sur la fixation de ce?

Remerciements

Questions connexes