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

Bibliothèques & Frameworks Discussion :

dijit.Tree avec de longues lignes


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 63
    Points : 63
    Points
    63
    Par défaut dijit.Tree avec de longues lignes
    Bonjour !

    J'ai un dijit.Tree avec de longues lignes.
    Le cadre dijit.layout.ContentPane fait apparaître un ascenseur horizontal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      <div dojoType="dijit.layout.ContentPane" region="center" >
        <div dojoType="dojo.data.ItemFileReadStore" jsId="storePlan1" url="<?php echo BASE_URL . '/datastore/getreferentiel/plan/1' ?>"></div>
        <div dojoType="dijit.tree.TreeStoreModel" jsId="modelPlan1" store="storePlan1" labelAttr="name" childrenAttrs="children" query="{top:true}"></div>
        <div dojoType="dijit.Tree" id="planTree1" model="modelPlan1" ></div>
      </div>


    Je voudrais que les lignes du dernier niveau, qui sont très longues, passent à la ligne suivante, comme dans une balise <li> par exemple.
    J'ai essayé de bidouiller avec du CSS et même du JS mais je n'y arrive pas.
    Quelqu'un a-t-il une idée comment faire ?

    Merci,
    Eric.

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Redéfinis la fonction getLabel du Tree. Par défaut son code est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	getLabel: function(item){
    		return this.model.getLabel(item);
    	},
    A ta place je la redéfinirais simplement par un simple dojo.extend plutôt que par un héritage brut. Tu peux obtenir la taille de la chaine et la segmenter avec des BR ou autre.

    ERE

  3. #3
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Re,

    Je modère un peu ce que j'ai écrit: le BR ne sera pas pris en compte car il le traite comme un noeud text. Après avoir regarder de plus prêt, une solution est celle-ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	<style type="text/css">
    		#arbre .dijitTreeRow {height:2.2em}
    	</style>
    ensuite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		dojo.extend(dijit._TreeNode,
    		{setLabelNode: function(label){
    			this.labelNode.innerHTML = label;
    		}});
    puis quelque chose comme (pris comme exemple sur un test dojo puis modifié):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <div dojoType="dijit.tree.ForestStoreModel" jsId="customModel" store="store">
    		<script type="dojo/method" event="getLabel" args="item">
    			if(item.root){ return "States"; }
    			return (store.getLabel(item) + " <br> (" + store.getIdentity(item) + ")");
    		</script>
    	</div>
     
    	<div dojoType="dijit.Tree" id="monArbre" model="customModel" openOnClick="true">
    		<script type="dojo/method" event="getLabelStyle" args="item,opened">
    				return {position: "absolute",
    						left: "90px" };
    		</script>
    	</div>
    Pour moi le rendu est correct, reste à toi de couper convenablement test textes...

    Et sinon il existe aussi une version de la grille dojox.grid qui se comporte comme une arbo.

    ERE

Discussions similaires

  1. Tableau avec longues lignes numérotées
    Par Hind4Dev dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 28/10/2017, 21h37
  2. [Dojo] dijit.Tree avec plusieurs dijit.Menu
    Par ptitjib dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 26/06/2011, 15h39
  3. [Dojo] drag and drop avec dijit.tree
    Par laminfodev dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 29/01/2010, 12h06
  4. [Dojo] dijit.tree avec dijit.menu
    Par laminfodev dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 22/01/2010, 10h29
  5. Réponses: 1
    Dernier message: 13/06/2008, 19h38

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