Accueil > > > AFFICHAGE, ÉDITION GRAPHIQUE DE TABLEAUX
AFFICHAGE, ÉDITION GRAPHIQUE DE TABLEAUX
Information sur la source
Description
Ce script permet d'afficher les tableaux, et de les éditer. On peut afficher des tableaux simple ou des tableaux d'objets. Un click sur le titre d'une colonne la triera. On peut éditer une cellule en clicant deux fois lentement dessus. Il y a différentes méthodes disponible pour redimensionner la table, les colonnes ... La mise en page est gérée en partie via une feuille de style.
Source
- // exemples d'utilisations :
-
- // on suppose que la balise body est <body id="conteneur">
- // on peut créer plusieures table sur la même page (en changeant le conteneur)
- // ces exemples doivent être testé séparément
-
- // affiche un tableau de nombre
- var t1 = new Table("t1",[6,20,43], null);
- t1.dessiner("conteneur");
-
- // affiche un tableau à deux dimension de nombre
- var t2 = new Table("t2",[[1,2],[2,3],[3,4]], ["colonne 1", "colonne 2"]);
- t2.dessiner("conteneur");
-
- // affiche un tableau d'objets perso
- // création de la classe des objets perso
- function Chanson(tit, aut, alb, dur){
- this.titre = tit;
- this.auteur = aut;
- this.album = alb;
- this.duree = dur;
- }
-
- Chanson.prototype.dureeString = function (){
- var min = Math.floor(this.duree/100);
- var sec = this.duree - (min*100);
- return (min + ":" + ((sec < 10)?"0":"") + sec);
- }
-
- // on redefini deux méthode de l'objet table
- // afin de n'afficher que les propriétées voulues
- // si on ne les redefinis pas toutes les prorpiétées seront affichées
-
- // lecture des propriétées
- function obtCellule(indLigne, indColonne){
- var lg = this.obtLigne(indLigne);
- var cel = null;
- switch(indColonne){
- case 0:
- cel = lg.titre;
- break;
- case 1:
- cel = lg.auteur;
- break;
- case 2:
- cel = lg.dureeString();
- break;
- case 3:
- cel = lg.album;
- break;
- }
- return cel;
- }
-
- // écriture des propriétées
- function defCellule(indLigne, indColonne, valeur){
- var lg = this.obtLigne(indLigne);
- switch(indColonne){
- case 0:
- lg.titre = valeur;
- break;
- case 1:
- lg.auteur = valeur;
- break;
- case 3:
- lg.album = valeur;
- break;
- }
- }
-
- // création des objets
- var listeLecture = new Array();
- listeLecture.push(new Chanson("Stairway to heaven", "Led Zepplin", "Led Zepplin IV", 712));
- listeLecture.push(new Chanson("Black Bird", "The Beatles", "White album", 325));
- listeLecture.push(new Chanson("Paint it black", "The Roling Stones", "Aftermath", 352));
- listeLecture.push(new Chanson("We will rock you", "Queen", "News of the world", 405));
- listeLecture.push(new Chanson("I Don't Have To Try", "Avril Lavigne", "The best damns thing", 341));
-
-
- var t3 = new Table("t3", listeLecture, ["Titre","Auteur","Durée","Album"]);
- // association des methodes redéfinies
- t.obtCellule = obtCellule;
- t.defCellule = defCellule;
- // changement des tailles etc ...
- t.defTaille(550,200);
- t.defLargeurColonne(2, 50);
- t.defAlignement(2, 2);
- t.defEditable(2, false);
- t.dessiner("conteneur");
// exemples d'utilisations :
// on suppose que la balise body est <body id="conteneur">
// on peut créer plusieures table sur la même page (en changeant le conteneur)
// ces exemples doivent être testé séparément
// affiche un tableau de nombre
var t1 = new Table("t1",[6,20,43], null);
t1.dessiner("conteneur");
// affiche un tableau à deux dimension de nombre
var t2 = new Table("t2",[[1,2],[2,3],[3,4]], ["colonne 1", "colonne 2"]);
t2.dessiner("conteneur");
// affiche un tableau d'objets perso
// création de la classe des objets perso
function Chanson(tit, aut, alb, dur){
this.titre = tit;
this.auteur = aut;
this.album = alb;
this.duree = dur;
}
Chanson.prototype.dureeString = function (){
var min = Math.floor(this.duree/100);
var sec = this.duree - (min*100);
return (min + ":" + ((sec < 10)?"0":"") + sec);
}
// on redefini deux méthode de l'objet table
// afin de n'afficher que les propriétées voulues
// si on ne les redefinis pas toutes les prorpiétées seront affichées
// lecture des propriétées
function obtCellule(indLigne, indColonne){
var lg = this.obtLigne(indLigne);
var cel = null;
switch(indColonne){
case 0:
cel = lg.titre;
break;
case 1:
cel = lg.auteur;
break;
case 2:
cel = lg.dureeString();
break;
case 3:
cel = lg.album;
break;
}
return cel;
}
// écriture des propriétées
function defCellule(indLigne, indColonne, valeur){
var lg = this.obtLigne(indLigne);
switch(indColonne){
case 0:
lg.titre = valeur;
break;
case 1:
lg.auteur = valeur;
break;
case 3:
lg.album = valeur;
break;
}
}
// création des objets
var listeLecture = new Array();
listeLecture.push(new Chanson("Stairway to heaven", "Led Zepplin", "Led Zepplin IV", 712));
listeLecture.push(new Chanson("Black Bird", "The Beatles", "White album", 325));
listeLecture.push(new Chanson("Paint it black", "The Roling Stones", "Aftermath", 352));
listeLecture.push(new Chanson("We will rock you", "Queen", "News of the world", 405));
listeLecture.push(new Chanson("I Don't Have To Try", "Avril Lavigne", "The best damns thing", 341));
var t3 = new Table("t3", listeLecture, ["Titre","Auteur","Durée","Album"]);
// association des methodes redéfinies
t.obtCellule = obtCellule;
t.defCellule = defCellule;
// changement des tailles etc ...
t.defTaille(550,200);
t.defLargeurColonne(2, 50);
t.defAlignement(2, 2);
t.defEditable(2, false);
t.dessiner("conteneur");
Conclusion
Un exemple est disponible sur cette page : http://users.skynet.be/thebmxeur/table/
Le script fonctionne sous Firefox, Opera, Safari et IE (pas testé sur les autres navigateurs). Dans IE et Opera la gestion du double click ne fonctionne pas très bien (si quelqu'un a une idée de comment gérer ça qu'il me contacte).
Tout commentaire, suggestion, report de bug ou autre est le bienvenu !
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
tableau avec tri dynamique [ par rcedric ]
Salut a tous,voila mon probleme; je cherche à afficher un tableau et que lorsqu l'on clic sur le libellé le tableau est trié et réafficher dynamiqueme
Tri d'une table en fonction du click sur une colonne [ par manutu ]
salut a tousj ai un problème. J'ai une table avec plusieurs colonnes. Je dois trier la table par défaut sur la premiere et ensuite sur la colonne sur
pb tri tableau! [ par joduak ]
salut je voudrai savoir comment on fait un tri d'un tableau javascript de nombres? genre: tableau[0]=4 tableau[1]=8 tableau[2]=23 etc...dans l'ordre c
Formulaire : Ajouter une ligne sans reload [ par coraziari ]
Bonjour,Je réalise un formulaire de saisie de CV mais je galère un peu pour les expériences. En effet, pour ne pas "polluer" trop la page, j'ai mis un
Tri de tableau associatif [ par cydelic ]
Bonjour, J’ai un petit problème de tri... je vous explique Rien de bien compliquer, j’ai un tableau associatif du genre : var
Tri de tableau [ par Evangun ]
Bonjour à tous,je me demande pourquoi quand je trie mon tableau alphabétiquement, ils sont tous bon sauf le premier qui est mis en dernière position !
Trier dynamiquement un tableau HTML (à l'aide de XML, XSL, Javascript) [ par edevouge ]
Bonjour, Dans le cadre d'un stage, j'ai besoins de créer un tableau html à partir d'un fichier XML et d'un fichier XSL. Et grâce au JavaScript, je v
tri de tableau multiple [ par PROTECTIONNISTE ]
Bonjour,Je voudrais pouvoir classer via un élèment de tableau et ressortir ce tri convenablement. j'expliques car pour le moment ça veut rien dire ;-)
Tri (fonction sort) [ par John_Doe_88 ]
Salut tlm,J'utilise la fonction sort pour trier un tableau, mais ce tableau peut être très grand et dans ce cas j'obtiens un message dans le navigateu
Tri (fonction sort) [ par John_Doe_88 ]
Salut tlm,J'utilise la fonction sort pour trier un tableau, mais ce tableau peut être très grand et dans ce cas j'obtiens un message dans le navigateu
|
Derniers Blogs
WP7 5K BELGIUM CHALLENGEWP7 5K BELGIUM CHALLENGE par junarnoalg
Microsoft Belgique a le plaisir de vous annoncer le lancement du
Challenge Windows Phone 7
. Celui-ci se déroule du 12 juillet au 30 novembre 2010 et vous donne l'opportunit...
Cliquez pour lire la suite de l'article par junarnoalg LES MONADES POUR LES NULSLES MONADES POUR LES NULS par mdufourneaudravel
Avec l'annonce de F#, je me suis intéressé de plus en plus à la programmation fonctionnelle, je suis donc rapidement tombé sur les " monades ", mais malgré la lecture de plusieurs articles, j'étais resté perméable à leur concept. C'est désormais fini, grâ...
Cliquez pour lire la suite de l'article par mdufourneaudravel [WP7] AJOUTER DES IMAGES DANS LA MEDIA LIBRARY D'UN WINDOWS PHONE 7[WP7] AJOUTER DES IMAGES DANS LA MEDIA LIBRARY D'UN WINDOWS PHONE 7 par Audrey
L'émulateur Windows Phone 7, fourni avec la version Beta des outils développeurs n'inclut aucune image dans sa bibliothèque. Pas très pratique de tester son application lorsque l'on souhaite que l'utilisateur puisse choisir une image présente dans le télé...
Cliquez pour lire la suite de l'article par Audrey VIVE LES MOCKS ET LES POCOSVIVE LES MOCKS ET LES POCOS par vLabz
J'observe régulièrement autour de moi de la confusion à propos de ces deux termes et j'aimerais juste rappeler ce qu'ils signifient. Je ne suis bien sûr pas le mieux placé pour faire une leçon mais je vais faire de mon mieux pour mettre en valeur ce q...
Cliquez pour lire la suite de l'article par vLabz [WF4] WORKFLOW AND CUSTOM ACTIVITIES - BEST PRACTICES (4/5)[WF4] WORKFLOW AND CUSTOM ACTIVITIES - BEST PRACTICES (4/5) par JeremyJeanson
Vendredi dernier Microsoft a publié le quatrième épisode des bonnes pratiques pour coder ses activités custom dans WF4 : endpoint.tv - Workflow and Custom Activities - Best Practices (Part 4) . Tout comme pour les précédents épisodes, j'ai pris le temps d...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Crystal Report (11)CRYSTAL REPORT (11)Crystal Reports est un outil de reporting souple et puissant, vous pouvez très facilement consult... Cliquez pour télécharger Crystal Report Academy System (12.0.2.0)ACADEMY SYSTEM (12.0.2.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft iPod Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPOD VIDéO CONVERTISSEUR 6 (6.0.3.0419)Xilisoft iPod Vidéo Convertisseur est un outil puissant de conversion d'iPod, facile à utiliser. ... Cliquez pour télécharger Xilisoft iPod Vidéo Convertisseur 6 Xilisoft iPhone Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPHONE VIDéO CONVERTISSEUR 6 (6.0.3.0419)Xilisoft iPhone Vidéo Convertisseur est le meilleur logiciel de conversion iPhone qui peut facile... Cliquez pour télécharger Xilisoft iPhone Vidéo Convertisseur 6 Xilisoft iPad Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPAD VIDéO CONVERTISSEUR 6 (6.0.3.0419)Il s'agit d'un logiciel polyvalent pour convertir les formats vidéo/audio populaires en formats p... Cliquez pour télécharger Xilisoft iPad Vidéo Convertisseur 6
|