2011-06-28 4 views
1

これを読んだ後、いくつかのdojoツリーの例を見て、私はdojoツリー内でカスタム・アイコンを使用しようとしましたが、ルート・アイテムだけが変更されます。誰でも私を修正できますか?アイコンは下のHTMLファイルと同じディレクトリにあり、ルートは表示されますが、リーフは表示されません。場合 how to change the icon of leaf node in dojo tree? dojoツリー・カスタム・アイコン

<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> 

実装するためのより良い方法があり、お知らせください。ありがとう!!

答えて

0

dojo.addonload()の中にjavascriptを入れて動作させていただきました。