EditableGrid est une bibliothèque JavaScript permettant de créer des tables éditables. À l'origine, nous avons développé ce composant pour l'utiliser dans un projet interne. EditableGrid suscitant un certain intérêt, nous en avons factorisé le code afin d'en faire un composant indépendant, réutilisable dans d'autres projets. Nous avons décidé de publier le code source sous licence GPL.
Nous pensons que cette bibliothèque a atteint un niveau de maturité suffisant pour être utilisée en production. Une démo est disponible sur la (courte) page du projet.
EditableGrid n'est pas basée sur
jQuery. Cependant, l'utilisation de la bibliothèque de John Resig est vivement recommandée, par exemple pour les callbacks Ajax ou pour développer ses propres validateurs et éditeurs de cellule.
Fonctionnalités principales :
- Chargement à partir d'un fichier XML ou rattachement à une table HTML existante ;
- Simplicité d'utilisation et intégration facile dans des applications web existantes ;
- Chaque colonne est typée (string, integer, double, boolean, url, email, date) ;
- Les cellules peuvent être éditées avec un éditeur adapté au type de la colonne (ex: checkbox pour boolean) ;
- Possibilité de déclarer une liste de valeurs possibles pour les cellules d'une colonne (statique ou en JavaScript) ;
- Gestion de l'unité, de la précision et des valeurs NaN pour les colonnes numériques ;
- Validateurs intégrés pour les colonnes de type integer, double, url, email et date ;
- Possibilité de brancher vos propres renderers, éditeurs et validateurs de cellules ;
- Tri des colonnes (adapté au type) en cliquant sur l'en-tête de colonne ;
- Binding PHP : construisez le tableau en PHP et laissez-le générer le fichier XML ;
- Filtrage du tableau ;
- Ajout et suppression de lignes ;
- Intégration de Open Flash Chart afin de dessiner des graphiques à partir des données du tableau (le graphique peut suivre en cas d'édition et de tri des données) ;
- Callbacks pour tous les événements: chargement, édition, tri, etc.
Bien sûr, certaines fonctionnalités restent à implémenter, comme l'utilisation d'un datepicker pour le format date, la pagination côté client, le masquage de colonnes, etc. Nous tâcherons de réaliser tout cela prochainement.
Nous espérons que cette bibliothèque pourra être utile dans vos projets. Tous les commentaires et contributions sont naturellement les bienvenus !