2011-06-28 3 views
1

Après avoir lu ceci et regardé quelques exemples d'arbres de dojo, j'ai essayé d'utiliser mes icônes personnalisées dans un dojo, mais seul l'élément racine a été changé. Quelqu'un peut-il me corriger? L'icône est dans le même répertoire que le fichier HTML ci-dessous, et affiche pour la racine, mais pas les feuilles. how to change the icon of leaf node in dojo tree? icônes personnalisées dojo tree

<head> 
    <style type="text/css"> 
     body, html { font-family:helvetica,arial,sans-serif; font-size:90%; } 

     .diagramIcon 
     { 
      background-image: url(diagram_16x16.png); 
      background-repeat: no-repeat; 
      background-position: center center; 
      width: 16px; 
      height: 16px; 
     }   

    </style> 

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js" djConfig="isDebug:true, parseOnLoad:true"></script> 

    <script type="text/javascript"> 
     dojo.require("dojo.data.ItemFileReadStore"); 
     dojo.require("dijit.Tree"); 
     dojo.require("dijit.tree.ForestStoreModel"); 


     var countries = { identifier: 'abbr', 
      label: 'name', 
      items: [ 
      { abbr:'ec', name:'Ecuador',   capital:'Quito' }, 
      { abbr:'eg', name:'Egypt',    capital:'Cairo' }, 
      { abbr:'sv', name:'El Salvador',  capital:'San Salvador' }, 
      { abbr:'gq', name:'Equatorial Guinea', capital:'Malabo' }, 
      { abbr:'er', name:'Eritrea',   capital:'Asmara' }, 
      { abbr:'ee', name:'Estonia',   capital:'Tallinn' }, 
      { abbr:'et', name:'Ethiopia',   capital:'Addis Ababa' } 
     ]}; 

     dojo.addOnLoad(function() { 
      var store = new dojo.data.ItemFileReadStore({ 
       data: countries, 
      }); 

      var treeModel = new dijit.tree.ForestStoreModel({ 
       store: store, 
       rootLabel: "Continentwa", 
       //getIconClass: myGetIconClassFunction, 
      }); 

      var tree = new dijit.Tree({ 
       model: treeModel, 
     showRoot: true 
      }, 
      "treeOne"); 

    tree.getIconClass = myGetIconClassFunction; 
    tree.startup(); 
     }); 

     function myGetIconClassFunction(item, opened) 
     { 
      if(item.root){ 
       return "diagramIcon"; 
      }else{ 
            if (item.children){ 
        return "diagramIcon"; 
            }else { 
        return {backgroundColor: "orange"}; 
            } 

      } 

     } 

    </script> 
    <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/claro/claro.css"/> 
</head> 

<body class=" claro "> 
    <div id="treeOne"> 
    </div> 
</body> 

Dans le cas où il y a une meilleure façon de mettre en œuvre, s'il vous plaît le faire savoir. Merci!!

Répondre

0

Je l'ai eu pour travailler en mettant le javascript à l'intérieur du dojo.addonload().

Questions connexes