2010-01-23 8 views
0

Je ne peux pas obtenir focusNode() ou expandNode() fonctionne. J'ai aussi essayé de revenir au dojo 1.32 et même 1.3, pas de différence à 1.4. Et j'ai débogué avec firebug, le noeud est un noeud d'arbre valide et aucune erreur ne se produit mais le noeud ne se concentre pas. L'aide est très appréciée!dijit tree et focus node

<head> 
<script type="text/javascript"> 
    dojo.declare("itcTree",[dijit.Tree], { 
     focusNodeX : function(/* string */ id) { 
        var node=this._itemNodesMap[id]; 
        this.focusNode(node); 
     } 
    }); 
    </script> 
</head> 

<body class="tundra"> 
    <div dojoType="dojo.data.ItemFileReadStore" jsId="continentStore" url="countries.json"> 
    </div> 
    <div dojoType="dijit.tree.ForestStoreModel" jsId="continentModel" store="continentStore" 
    query="{type:'continent'}" rootId="continentRoot" rootLabel="Continents" 
    childrenAttrs="children"> 
    </div> 
    <div dojoType="itcTree" id="mytree" model="continentModel" openOnClick="true"> 
     <script type="dojo/method" event="onClick" args="item"> 
      dijit.byId('mytree').focusNodeX('AF'); 
     </script> 
    </div> 
    <p> 
    <button onclick="dijit.byId('mytree').focusNode('DE');">klick</button> 
    </p> 
</body> 

Répondre

1

focusNode() prend un dijit.TreeNode comme paramètre, pas une chaîne de texte.

Vous souhaitez probablement utiliser Tree.attr ("selectedItem", "DE").

+0

Merci. Je viens de découvrir que la fonction focusX ci-dessus fonctionne si j'utilise focusNode (node ​​[0]). – MichaSchumann

0

Oui, j'ai trouvé la même chose, vous devez utiliser le noeud [0]

var itemNode = tree._itemNodesMap["some_id"]; 
tree.focusNode(itemNode[0]); 

le problème est le nœud précédent sélectionné continue concentré deux.

Toutes les idées là-dessus.