javascript - Extjs:树,创建树后选择节点

标签 javascript ajax extjs

我有一个简单的 TreePanel。我想在加载时选择一个特定的节点。节点来自远程文件 (json)。

树正在按预期加载。但是,未选择该节点。 Firebug 将节点显示为未定义。这可能是因为异步属性。但是,我无法以其他方式配置它,也无法指定要选择的节点。

欢迎提出任何建议,谢谢。

    LeftMenuTree = new Ext.tree.TreePanel({
    renderTo: 'TreeMenu',
    collapsible: false,
    height: 450,
    border: false,
    userArrows: true,
    animate: true,
    autoScroll: true,
    id: 'testtest',
    dataUrl: fileName,
    root: {
  nodeType: 'async',    
     iconCls:'home-icon',
     expanded:true,
       text: rootText
    },
    listeners: {
        "click": {
    fn: onPoseClick,
                 scope: this
               }
        },
          "afterrender": {
       fn: setNode,
       scope: this 
      }  
 });
function setNode(){
 alert (SelectedNode);
  if (SelectedNode == "Orders"){
    var treepanel = Ext.getCmp('testtest');
    var node = treepanel.getNodeById("PendingItems");
    node.select();
  }
} 

最佳答案

我在 TreeGrid 中使用这段代码来选择一个节点

_I.treeGrid.getSelectionModel().select(_I.treeGrid.getRootNode());

我还没有在 TreePanel 中尝试过这个,但是由于 TreeGrid 是基于它的,所以我假设它是可行的。在完成 XHR 请求后,我使用加载器的加载事件来插入类似的代码,所以请尝试像这样编写您的 setNode 函数:

var loader = LeftMenuTree.getLoader();
loader.on("load", setNode);    
function setNode(){
     alert (SelectedNode);
      if (SelectedNode == "Orders"){
        var treepanel = Ext.getCmp('testtest');
        treepanel.getSelectionModel().select(treepanel.getNodeById("PendingItems"));
      }
    }

关于javascript - Extjs:树,创建树后选择节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2623042/

相关文章:

javascript - 创建一个 onclick 处理程序,当单击其任何子元素时会触发该处理程序

php - ajax返回整个html代码的问题

javascript - appendChild树节点不展开

javascript - 如何在 ext.panel.Panel 内的 Ext.js 中添加列

javascript - 我想使用 ajax 和 PHP 获取每个帖子数据的喜欢总数

java - 使用js或extjs访问java对象列表

javascript - 为什么即使用户不存在于 parse.com 数据库中,JavaScript 查询结果也总是成功?

javascript - OAuth弹窗跨域安全React.js

javascript - 异步node.js :nested array with callback

javascript - 我怎样才能用纯javascript获取ajax请求的ContentType?