Partage
  • Partager sur Facebook
  • Partager sur Twitter

trier un table

sans onclick ?!

    14 février 2011 à 23:08:43

    Salut les zéros,

    Je suis actuellement en train de créer un tableau qui peut être trié, filtré et paginé. J'ai actuellement quelques petits problèmes à mettre en place tout cela, et c'est en cherchant une solution sur le net que je suis tombé sur cela : lien.

    J'aimerai savoir comment ils réalisent leur triage sans avoir d'évènement "onclick" sur les th, avez vous une idée ?


    Sinon j'ai quelques autres questions :
    A partir de combien d'enregistrement pensez vous qu'une pagination nécessite de l'ajax et plus uniquement du js ?

    Comment faite vous pour trier votre table ? actuellement je trie un array de row ensuite je réécris ces lignes en fin de table et je supprime les anciens éléments, n'y a t-il pas un meilleur moyen ?

    Comment faire une copie d'un array de row et non une référence ?
    (actuellement : array2 = array1 ; array1.update => automatiquement array2 is update
    ce que je souhaiterais : array2 = array1 ; array1.update => array2 conserve ses valeurs)

    Comment rajouter un évènement "onclick" à un élément en javascript ? (je crois avoir trouvé cela mais pas encore testé : element.onclick = function; )

    Je vous remercie d'avance pour vos futures réponses

    Matthieu
    • Partager sur Facebook
    • Partager sur Twitter
      15 février 2011 à 12:07:58

      1/ Pourquoi tu dis qu'il n'y a pas d'événement onclick?
      Il y en a bien un! Il est rajouté aux éléments ligne 906 du script table.js

      2/ Pour ce qui est d'utiliser de l'ajax ou non est une question beaucoup plus délicate. Et c'est plus à voir en fonction de tes contraintes et de tes attentes.

      Uniquement avec du JS: la navigation dans les données sera plus fluide (quitte à découper son tableau en plusieurs morceau afin d'éviter des temps de traitement trop long)
      Par contre le temps de chargement initial sera plus long

      Avec de l'ajax: le temps de chargement initial sera plus rapide. Le découpage du tableau est obligatoire et il peut y avoir des temps de chargement lors de la navigation s'il y a une latence trop importante sur le réseau.


      3/ Quel est le meilleur moyen pour trier une table? Je ne sais pas trop ça doit dépendre de ton architecture globale, et sinon il faudrait faire des tests.
      Personnellement je préfère déplacer directement les lignes (et donc j'utilise directement la table comme array). Mais cela implique de réécrire ses propres fonctions de trie (mais la fois où j'avais effectuer cette opération je n'avais pas de soucis de temps de réponse mais plutôt d'espace mémoire alloué au javascript)

      4/ pour faire une copie d'array le moyen le plus simple que je connaisse est de faire array2=array1.concat([]); (le principe est de concaténer un array vide (donc de ne rien lui ajouter. Mais la méthode concat crée une copie des array qu'elle manipule :) ). Attention cependant si ton array contient des références ces références resteront les même (il s'agit d'une copie de l'array mais pas des données de l'array)

      5/ oui il suffit de faire element.onclick=function(event){le code de ta fonction};
      Cependant cela remplacera la fonction onclick liée à cet élément. Si tu souhaites ajoutée une nouvelle fonction il faudra utiliser addEventListener (ou AttachEvent pour IE)
      • Partager sur Facebook
      • Partager sur Twitter

      trier un table

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown