通过nodeid获取树节点

时间:2013-02-14 10:18:10

标签: extjs

如果树未展开,则无法获取树的节点。 我是这样使用的。     tree.getNodeById(ID);

提前感谢!

解决:这是我使用的代码。

 node_ids = [search_node_id,parent1_node_id,parent2_node_id]

 function select_node(node_ids,length,evt,e){
 var node=leftnav_treePanel.getNodeById(node_ids[length]); //length is length of node_ids list
 var ajaxReq = ajaxRequest(node.attributes.url,0,"GET",true);
 ajaxReq.request({
     success: function(xhr) {
        var response=Ext.util.JSON.decode(xhr.responseText);
        if(length>0){
            removeChild(node); // method to remove existing childnodes
            appendChild(response.nodes,node); // method to add child nodes from response
            node.expand();
            select_node(node_ids,length-1,evt,e);
        }else{
           node.fireEvent(evt,node,e);
        }
            },
     failure: function(xhr){
            Ext.MessageBox.alert( _("Failure") , xhr.statusText);
     }
 });

}

1 个答案:

答案 0 :(得分:0)

对此处发生的事情进行疯狂猜测,因为您没有提供任何代码。我认为您通过ajax有一个异步加载的treestore,并且商店中的节点尚未加载到用户页面,这就是为什么javascript无法找到它们。