IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Set width les colonnes d'un tableau dynamique


Sujet :

Tableau en CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Par défaut Set width les colonnes d'un tableau dynamique
    Bonjour,

    je cherche à fixer la taille width de mes colonnes de mon tableau généré dynamiquement pour que ces colonnes soit en phase avec ma ligne d'en-tête. Pas moyen de trouver comment faire vu que tout se génère tout seul, je ne sais pas comment caler un width dans mes colonnes :s

    J'upload un screen pour mieux comprendre: Nom : Sans titre.png
Affichages : 1042
Taille : 32,4 Ko

    Je le génère comme ceci:

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    if(TypeRech == "Fax" || TypeRech == "Mails")
    {
    	// $ligne = "<tr id='LigPartDroite_2' class='trDroite'>";
    	// construit les lignes avec les données retour
    	$.each(retourjson, function(titre, retour)
    	{
    		// toutes les colonnes que je ne souhaite pas afficher
    		if(titre != "NI" && titre != "TypeInt" && titre != "Auth" && titre != "Envoi" && titre != "NDoc")
    		{
    			if(titre == "MtTotDoc")
    			{
    				retour = Arrondir(retour, 2);
    				Total += +retour;
    				retour += " €";
    			}
    			if(retour == "0 €") retour = "- €";
    			$cell=$("<td />").html(retour);
    			$ligne.append($cell);
    		}
    	});
    	$("#tabDroite").append($ligne);
    }

    Comment puis-je fixe la taille de mes colonnes ?

    Bonne journée !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 461
    Par défaut
    Citation Envoyé par Castiel777 Voir le message
    je cherche à fixer la taille width de mes colonnes de mon tableau généré dynamiquement pour que ces colonnes soit en phase avec ma ligne d'en-tête.
    Ma petite solution avec du javascript "pur" :

    Mettons que la ligne d'entête soit un tableau (id = entete) d'une seule ligne et donnons comme id à la table tableau

    Tu devrais obtenir ce que tu veux avec ce petit JS qui, à l'aide d'une petite boucle, applique à chaque cellule de l'entête la largeur de la cellule du tableau lui correspondant.
    (noter que c'est réglé pour fonctionner avec des cellules dont les bordures sont de 1px et "collapsées" et dont la propriété box-sizing n'a pas été définie sur border-box)

    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var ot1 = document.getElementById('entete');
    var ot2 = document.getElementById('tableau');
    var olt = 0;
    for(var i=0, max=ot1.rows[0].cells.length; i<max; i++) {
        ot1.rows[0].cells[i].style.width = (ot2.rows[0].cells[i].offsetWidth -1) + 'px'; // -1 pour la bordure
        olt += ot2.rows[0].cells[i].offsetWidth;
    }

    Ça marche ?

  3. #3
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    tu peux très bien indiquer des width différents pour chacune de tes colonnes, mais il faut que leur somme (+ bordures ) corresponde à celle de la largeur totale du tableau ( table.width )

    La largeur totale du tableau est prioritaire et doit être indiquée
    si les width des colonnes ne correspondent pas, alors le navigateur les ajustera à sa sauce pour tout faire rentrer, quitte même à ajuster aussi la largeur de la table.

  4. #4
    Membre confirmé
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Par défaut
    Bonjour,

    merci d'avoir pris le temps de répondre domi65, ta solution applique bien une taille sur mon en-tête, mais pas la même largeur que la cellule, voilà un screen: Nom : Sans titre.png
Affichages : 812
Taille : 30,1 Ko

    merci aussi psychadelic, le problème est que si je donne une width à chaque colonne, ça va rajouter pas mal de ligne et aussi, si mon texte est plus grand que ma cellule à laquelle j'ai donné un width, elle va s'agrandir pour accueillir tout le texte (ce n'est pas moi qui gère le texte, c'est dynamique avec des données) et ne sera plus en phase avec l'en-tête.

    Bonne journée !

  5. #5
    Membre expérimenté
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 461
    Par défaut
    Je ne comprends rien à ton screen.
    La page est-elle en ligne quelque part que je puisse la voir et l'étudier ?

  6. #6
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    Citation Envoyé par Castiel777 Voir le message
    merci aussi psychadelic, le problème est que si je donne une width à chaque colonne, ça va rajouter pas mal de ligne et aussi, si mon texte est plus grand que ma cellule à laquelle j'ai donné un width, elle va s'agrandir pour accueillir tout le texte (ce n'est pas moi qui gère le texte, c'est dynamique avec des données) et ne sera plus en phase avec l'en-tête.
    Ma réponse porte sur les principes, pas sur la technique de implémentation à utiliser

    Ne me dis tout de même pas que tu cherche à programmer ton truc en te fichant des tenants et des aboutissants !

  7. #7
    Membre confirmé
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Par défaut
    Bonjour,

    j'ai finalement réussi à aligner mon tableau, voilà le résultat: Nom : Sans titre.png
Affichages : 773
Taille : 35,9 Ko

    j'ai fait ça ap:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    complete : function() {
    	numCol=0;
    	$("#tabDroiteTitre th").each(function() {
    		console.log($(this).css("width"));
    		tailleCol=$(this).css("width");
    		$("#tabDroite tr").each(function() {
    			$(this).find("td:eq("+numCol+")").css("min-width",tailleCol);
    			$(this).find("td:eq("+numCol+")").css("max-width",tailleCol);
    		});
    		numCol+=1;
    	});
    }
    Bonne journée !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FPDF] problème avec les images dans un tableau dynamique
    Par GADSN dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 08/04/2009, 11h11
  2. Remplir les colonnes dans un TableViewer dynamiquement
    Par gargantua dans le forum Eclipse Platform
    Réponses: 13
    Dernier message: 07/11/2007, 21h13
  3. Filtre dans les données d'un tableau dynamique
    Par lbar012001 dans le forum Excel
    Réponses: 2
    Dernier message: 07/06/2007, 14h06
  4. Sélectionner les colonnes d'un tableau
    Par identifiant_bidon dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/06/2007, 17h05
  5. [VBA|EXcel]Moduler les colonnes d'un tableau
    Par quario dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/03/2007, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo