Je recherche un moyen de présenter un tableau (X lignes+ X colonnes) en
offrant la possibilité de plier/déplier certaines parties (lignes ou
colonnes) avec sous totaux à la manière du mode plan d'Excel.
Du coté serveur (PHP) je peux gérer. C'est du coté client que je recherche
une solution.
Merci.
Et bon WE.
Sans compter qu'il est plus facile de positionner une valeur à "none" ou "" que de rajouter ou supprimer une classe à des éléments qui parfois en contiennent déjà, parfois non. Possible oui. Sauf par exemple quand on a un élément inline (que tu ne
contrôles pas) avec un style.display = 'block', qu'on le cache puis l'affiche et que ohh ohh, le layout a changé...
Il me semble que ça ne pourrait arriver que si tu positionnes le display à 'block' en JavaScript et pas s'il est positionné en CSS. Or je n'arrive pas à imaginer un seul cas dans lequel cela pourrait être utile (par opposition à « tordu »). En outre, si vraiment tu arrives à imaginer un tel cas, alors on peut supposer que tu saches quelle valeur tu as mise. Et pour faire bonne mesure, il suffit alors de le sauver au moment de le mettre à 'none' :
Sans compter qu'il est plus facile
de positionner une valeur à "none" ou "" que de rajouter ou supprimer
une classe à des éléments qui parfois en contiennent déjà, parfois non.
Possible oui. Sauf par exemple quand on a un élément inline (que tu ne
contrôles pas) avec un style.display = 'block', qu'on le cache puis
l'affiche et que ohh ohh, le layout a changé...
Il me semble que ça ne pourrait arriver que si tu positionnes le
display à 'block' en JavaScript et pas s'il est positionné en CSS.
Or je n'arrive pas à imaginer un seul cas dans lequel cela pourrait
être utile (par opposition à « tordu »). En outre, si vraiment tu
arrives à imaginer un tel cas, alors on peut supposer que tu saches
quelle valeur tu as mise. Et pour faire bonne mesure, il suffit
alors de le sauver au moment de le mettre à 'none' :
Sans compter qu'il est plus facile de positionner une valeur à "none" ou "" que de rajouter ou supprimer une classe à des éléments qui parfois en contiennent déjà, parfois non. Possible oui. Sauf par exemple quand on a un élément inline (que tu ne
contrôles pas) avec un style.display = 'block', qu'on le cache puis l'affiche et que ohh ohh, le layout a changé...
Il me semble que ça ne pourrait arriver que si tu positionnes le display à 'block' en JavaScript et pas s'il est positionné en CSS. Or je n'arrive pas à imaginer un seul cas dans lequel cela pourrait être utile (par opposition à « tordu »). En outre, si vraiment tu arrives à imaginer un tel cas, alors on peut supposer que tu saches quelle valeur tu as mise. Et pour faire bonne mesure, il suffit alors de le sauver au moment de le mettre à 'none' :
Et au pire, si on veut pas s'embêter avec [].indexOf, on peut toujours passer par un truc plus générique : les Regexps
function hasCSS(elt, cName) { var r; if ( !elt || !elt.className ) { return false; } r = new RegExp("(^|s)" + cName + "(s|$)"); return r.test(elt.className); }
pour la regexp, j'aurais plutot utiliser : "b" + cName + "b"
Me trompe-je ?
-- Isammoc
Cenekemoi
Bonjour,
Je recherche un moyen de présenter un tableau (X lignes+ X colonnes) en offrant la possibilité de plier/déplier certaines parties (lignes ou colonnes) avec sous totaux à la manière du mode plan d'Excel. Du coté serveur (PHP) je peux gérer. C'est du coté client que je recherche une solution. Merci. Et bon WE.
Je veux juste vous parler de mon expérience.
J'ai réalisé l'année dernière une grille (Javascript, Ajax,...) permettant de gérer le plié/déplié en ligne et en colonne. Un peu du type du produit DynamiCube mais, lui, fonctionne exclusivement avec un ActiveX donc limité à IE.
Je ne peux fournir de source ou d'algo ici car je l'ai développé pour ma boîte, mais je peux fournir quelques indications intéressantes :
* L'algo inclut une partie récursive qui fonctionne très bien avec JavaScript * Les premiers développements ont été basés sur le DOM avec un objet Table etc...Les tests sous FF avec plusieurs milliers de cellules ont été concluants ; par contre, IE met un temps considérable à gérer de gros objets DOM. * Les seconds essais ont été basés sur la construction d'une chaîne Html contenant les balises <table>, <td>,... puis de la mettre simplement dans un élément DIV par innerHTML. Sous FF, les temps sont du même ordre que avec DOM ; par contre, avec IE et cette technique, les temps deviennent comparables à ceux de FF.
Il est facile de faire des tests pour vérifier mes dires et ne pas se lancer dans du DOM qui risque de ne pas convenir pour de gros volumes. Enfin, à vous de voir...
Dernier truc pour les longues chaînes de caractères :
Au lieu de:
var s = ""; (boucle) { s += contenu_inferieur_a_4K; } html = s;
Faire :
var t = []; (boucle) { t.push(contenu_inferieur_a_4K); } html = t.join('');
C'est beaucoup plus efficace pour les volumes importants !...
-- Cordialement, Thierry ;-)
Bonjour,
Je recherche un moyen de présenter un tableau (X lignes+ X colonnes)
en offrant la possibilité de plier/déplier certaines parties (lignes
ou colonnes) avec sous totaux à la manière du mode plan d'Excel.
Du coté serveur (PHP) je peux gérer. C'est du coté client que je
recherche une solution.
Merci.
Et bon WE.
Je veux juste vous parler de mon expérience.
J'ai réalisé l'année dernière une grille (Javascript, Ajax,...)
permettant de gérer le plié/déplié en ligne et en colonne. Un peu du
type du produit DynamiCube mais, lui, fonctionne exclusivement avec un
ActiveX donc limité à IE.
Je ne peux fournir de source ou d'algo ici car je l'ai développé pour ma
boîte, mais je peux fournir quelques indications intéressantes :
* L'algo inclut une partie récursive qui fonctionne très bien avec
JavaScript
* Les premiers développements ont été basés sur le DOM avec un objet
Table etc...Les tests sous FF avec plusieurs milliers de cellules ont
été concluants ; par contre, IE met un temps considérable à gérer de
gros objets DOM.
* Les seconds essais ont été basés sur la construction d'une chaîne Html
contenant les balises <table>, <td>,... puis de la mettre simplement
dans un élément DIV par innerHTML. Sous FF, les temps sont du même ordre
que avec DOM ; par contre, avec IE et cette technique, les temps
deviennent comparables à ceux de FF.
Il est facile de faire des tests pour vérifier mes dires et ne pas se
lancer dans du DOM qui risque de ne pas convenir pour de gros volumes.
Enfin, à vous de voir...
Dernier truc pour les longues chaînes de caractères :
Au lieu de:
var s = "";
(boucle) {
s += contenu_inferieur_a_4K;
}
html = s;
Faire :
var t = [];
(boucle) {
t.push(contenu_inferieur_a_4K);
}
html = t.join('');
C'est beaucoup plus efficace pour les volumes importants !...
Je recherche un moyen de présenter un tableau (X lignes+ X colonnes) en offrant la possibilité de plier/déplier certaines parties (lignes ou colonnes) avec sous totaux à la manière du mode plan d'Excel. Du coté serveur (PHP) je peux gérer. C'est du coté client que je recherche une solution. Merci. Et bon WE.
Je veux juste vous parler de mon expérience.
J'ai réalisé l'année dernière une grille (Javascript, Ajax,...) permettant de gérer le plié/déplié en ligne et en colonne. Un peu du type du produit DynamiCube mais, lui, fonctionne exclusivement avec un ActiveX donc limité à IE.
Je ne peux fournir de source ou d'algo ici car je l'ai développé pour ma boîte, mais je peux fournir quelques indications intéressantes :
* L'algo inclut une partie récursive qui fonctionne très bien avec JavaScript * Les premiers développements ont été basés sur le DOM avec un objet Table etc...Les tests sous FF avec plusieurs milliers de cellules ont été concluants ; par contre, IE met un temps considérable à gérer de gros objets DOM. * Les seconds essais ont été basés sur la construction d'une chaîne Html contenant les balises <table>, <td>,... puis de la mettre simplement dans un élément DIV par innerHTML. Sous FF, les temps sont du même ordre que avec DOM ; par contre, avec IE et cette technique, les temps deviennent comparables à ceux de FF.
Il est facile de faire des tests pour vérifier mes dires et ne pas se lancer dans du DOM qui risque de ne pas convenir pour de gros volumes. Enfin, à vous de voir...
Dernier truc pour les longues chaînes de caractères :
Au lieu de:
var s = ""; (boucle) { s += contenu_inferieur_a_4K; } html = s;
Faire :
var t = []; (boucle) { t.push(contenu_inferieur_a_4K); } html = t.join('');
C'est beaucoup plus efficace pour les volumes importants !...
-- Cordialement, Thierry ;-)
filh
Toto wrote:
Bonjour,
Je recherche un moyen de présenter un tableau (X lignes+ X colonnes) en offrant la possibilité de plier/déplier certaines parties (lignes ou colonnes) avec sous totaux à la manière du mode plan d'Excel. Du coté serveur (PHP) je peux gérer. C'est du coté client que je recherche une solution.
Sinon j'ai ça :
http://uuu.enseirb.fr/~goudal/Tables/
FiLH
-- Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle. Roland Barthes. http://www.filh.org
Toto <eloustau@hotmail.fr> wrote:
Bonjour,
Je recherche un moyen de présenter un tableau (X lignes+ X colonnes) en
offrant la possibilité de plier/déplier certaines parties (lignes ou
colonnes) avec sous totaux à la manière du mode plan d'Excel.
Du coté serveur (PHP) je peux gérer. C'est du coté client que je recherche
une solution.
Sinon j'ai ça :
http://uuu.enseirb.fr/~goudal/Tables/
FiLH
--
Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire
une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle.
Roland Barthes.
http://www.filh.org
Je recherche un moyen de présenter un tableau (X lignes+ X colonnes) en offrant la possibilité de plier/déplier certaines parties (lignes ou colonnes) avec sous totaux à la manière du mode plan d'Excel. Du coté serveur (PHP) je peux gérer. C'est du coté client que je recherche une solution.
Sinon j'ai ça :
http://uuu.enseirb.fr/~goudal/Tables/
FiLH
-- Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle. Roland Barthes. http://www.filh.org
ASM
Sinon j'ai ça :
http://uuu.enseirb.fr/~goudal/Tables/
Ha oui ! Pas mal !
Mon Opera me garde un anglais quand je lui demande les français
-- Stephane Moriaux et son (moins) vieux Mac
Sinon j'ai ça :
http://uuu.enseirb.fr/~goudal/Tables/
Ha oui ! Pas mal !
Mon Opera me garde un anglais quand je lui demande les français
Mon Opera me garde un anglais quand je lui demande les français
-- Stephane Moriaux et son (moins) vieux Mac
filh
ASM wrote:
Sinon j'ai ça :
http://uuu.enseirb.fr/~goudal/Tables/
Ha oui ! Pas mal !
Mon Opera me garde un anglais quand je lui demande les français
Hum... amusant. Comme le truc a été développé pour de l'interne (il y a même du code inutilisé dans le js :)) je n'ai testé que sur nos navigateurs : IE, Safari, Firefox.
Faut voir...
FiLH -- Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle. Roland Barthes. http://www.filh.org
Mon Opera me garde un anglais quand je lui demande les français
Hum... amusant.
Comme le truc a été développé pour de l'interne (il y a même du code
inutilisé dans le js :)) je n'ai testé que sur nos navigateurs : IE,
Safari, Firefox.
Faut voir...
FiLH
--
Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire
une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle.
Roland Barthes.
http://www.filh.org
Mon Opera me garde un anglais quand je lui demande les français
Hum... amusant. Comme le truc a été développé pour de l'interne (il y a même du code inutilisé dans le js :)) je n'ai testé que sur nos navigateurs : IE, Safari, Firefox.
Faut voir...
FiLH -- Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle. Roland Barthes. http://www.filh.org
filh
FiLH wrote:
ASM wrote:
Sinon j'ai ça :
http://uuu.enseirb.fr/~goudal/Tables/
Ha oui ! Pas mal !
Mon Opera me garde un anglais quand je lui demande les français
Hum... amusant. Comme le truc a été développé pour de l'interne (il y a même du code inutilisé dans le js :)) je n'ai testé que sur nos navigateurs : IE, Safari, Firefox.
Faut voir...
Ça marche bien sur l'opéra que je viens de télécharger...
Mac OSX.
FiLH
-- Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle. Roland Barthes. http://www.filh.org
Mon Opera me garde un anglais quand je lui demande les français
Hum... amusant.
Comme le truc a été développé pour de l'interne (il y a même du code
inutilisé dans le js :)) je n'ai testé que sur nos navigateurs : IE,
Safari, Firefox.
Faut voir...
Ça marche bien sur l'opéra que je viens de télécharger...
Mac OSX.
FiLH
--
Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire
une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle.
Roland Barthes.
http://www.filh.org
Mon Opera me garde un anglais quand je lui demande les français
Hum... amusant. Comme le truc a été développé pour de l'interne (il y a même du code inutilisé dans le js :)) je n'ai testé que sur nos navigateurs : IE, Safari, Firefox.
Faut voir...
Ça marche bien sur l'opéra que je viens de télécharger...
Mac OSX.
FiLH
-- Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle. Roland Barthes. http://www.filh.org
ASM
ASM wrote:
Mon Opera me garde un anglais quand je lui demande les français
Hum... amusant. Comme le truc a été développé pour de l'interne (il y a même du code inutilisé dans le js :)) je n'ai testé que sur nos navigateurs : IE, Safari, Firefox.
Faut voir...
Ben ... c'est tout vu : marche pô avec mon IE (Mac)
Mon Opera me garde un anglais quand je lui demande les français
Hum... amusant.
Comme le truc a été développé pour de l'interne (il y a même du code
inutilisé dans le js :)) je n'ai testé que sur nos navigateurs : IE,
Safari, Firefox.
Faut voir...
Ben ... c'est tout vu : marche pô avec mon IE (Mac)
Mon Opera me garde un anglais quand je lui demande les français
Hum... amusant. Comme le truc a été développé pour de l'interne (il y a même du code inutilisé dans le js :)) je n'ai testé que sur nos navigateurs : IE, Safari, Firefox.
Faut voir...
Ben ... c'est tout vu : marche pô avec mon IE (Mac)
-- Stephane Moriaux et son (moins) vieux Mac
ASM
FiLH wrote:
Ça marche bien sur l'opéra que je viens de télécharger...
Mac OSX.
Opera 9.0.0 MacOS 10.4.3
Mais comme de ttes façon je ne me sers d'Opera que pour voir à voir ... ce n'est donc que pour info. En fait il me garde Smith continuellement après la rangée inamovible.
Ha !? je viens de trier par nom : c'est Strondh qui est passé en queue (après l'inamovible) Bon ... FF me fait pareil, ça doit être normal ?
-- Stephane Moriaux et son (moins) vieux Mac
FiLH <filh@filh.orgie> wrote:
Ça marche bien sur l'opéra que je viens de télécharger...
Mac OSX.
Opera 9.0.0 MacOS 10.4.3
Mais comme de ttes façon je ne me sers d'Opera que pour voir à voir ...
ce n'est donc que pour info.
En fait il me garde Smith continuellement après la rangée inamovible.
Ha !? je viens de trier par nom : c'est Strondh qui est passé en queue
(après l'inamovible)
Bon ... FF me fait pareil, ça doit être normal ?
Ça marche bien sur l'opéra que je viens de télécharger...
Mac OSX.
Opera 9.0.0 MacOS 10.4.3
Mais comme de ttes façon je ne me sers d'Opera que pour voir à voir ... ce n'est donc que pour info. En fait il me garde Smith continuellement après la rangée inamovible.
Ha !? je viens de trier par nom : c'est Strondh qui est passé en queue (après l'inamovible) Bon ... FF me fait pareil, ça doit être normal ?
-- Stephane Moriaux et son (moins) vieux Mac
filh
ASM wrote:
FiLH wrote:
Ça marche bien sur l'opéra que je viens de télécharger...
Mac OSX.
Opera 9.0.0 MacOS 10.4.3
Mais comme de ttes façon je ne me sers d'Opera que pour voir à voir ... ce n'est donc que pour info. En fait il me garde Smith continuellement après la rangée inamovible.
Et bien je n'en sais rien, cela marche parfaitement chez moi.
Ha !? je viens de trier par nom : c'est Strondh qui est passé en queue (après l'inamovible) Bon ... FF me fait pareil, ça doit être normal ?
Je n'en sais rien, j'ai un peu de mal à savoir sur quo tu cliques ni si c'est normal ou pas...
Quant à IE mac le tableau n'est pas transformé, mais bon IE mac... J'avoue que je m'en tappes un peu :)
FiLH
-- Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle. Roland Barthes. http://www.filh.org
Ça marche bien sur l'opéra que je viens de télécharger...
Mac OSX.
Opera 9.0.0 MacOS 10.4.3
Mais comme de ttes façon je ne me sers d'Opera que pour voir à voir ...
ce n'est donc que pour info.
En fait il me garde Smith continuellement après la rangée inamovible.
Et bien je n'en sais rien, cela marche parfaitement chez moi.
Ha !? je viens de trier par nom : c'est Strondh qui est passé en queue
(après l'inamovible)
Bon ... FF me fait pareil, ça doit être normal ?
Je n'en sais rien, j'ai un peu de mal à savoir sur quo tu cliques ni si
c'est normal ou pas...
Quant à IE mac le tableau n'est pas transformé, mais bon IE mac...
J'avoue que je m'en tappes un peu :)
FiLH
--
Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire
une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle.
Roland Barthes.
http://www.filh.org
Ça marche bien sur l'opéra que je viens de télécharger...
Mac OSX.
Opera 9.0.0 MacOS 10.4.3
Mais comme de ttes façon je ne me sers d'Opera que pour voir à voir ... ce n'est donc que pour info. En fait il me garde Smith continuellement après la rangée inamovible.
Et bien je n'en sais rien, cela marche parfaitement chez moi.
Ha !? je viens de trier par nom : c'est Strondh qui est passé en queue (après l'inamovible) Bon ... FF me fait pareil, ça doit être normal ?
Je n'en sais rien, j'ai un peu de mal à savoir sur quo tu cliques ni si c'est normal ou pas...
Quant à IE mac le tableau n'est pas transformé, mais bon IE mac... J'avoue que je m'en tappes un peu :)
FiLH
-- Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle. Roland Barthes. http://www.filh.org