2017-09-26 81 views
1

我想创建一个TreePanel中是像一个文件夹浏览器。我正在尝试在我的树面板中单击节点扩展器(如以下屏幕截图)时查找事件。树面板“nodeexpand”在Extjs6.5事件不工作

有谁知道什么是正确的事件?

下面是我的看法代码:

Ext.define('HDDTest.view.mod.searchDetails', { 
    extend: 'Ext.Panel', 
    xtype:'searchDetails', 
    controller: 'home', 
    requires: [ 
     'HDDTest.view.mod.PreviewPlugins.PreviewPlugin', 
     'Ext.grid.*', 
     'Ext.data.*', 
     'Ext.util.*', 
     'Ext.toolbar.Paging', 
     'Ext.tip.QuickTipManager' 
    ], 
    items: [ 
     { 
      xtype: 'treepanel', 
      iconCls: 'icon-tree', 
      title: 'Tree', 
      collapsible: true, 
      height: 300, 
      padding:'0 20 0 0', 
      rootVisible: false, 
      id: 'treePanel', 
      name:'treePanel', 
      store: { 
       type: 'TreeBufferStore' 
      }, 
      listeners: { 
       itemclick: 'onNodesSelected', 
       nodeexpand : 'onNodesSelected2' //<== It can not work 
      }, 

      columns: [{ 
       xtype: 'treecolumn', //this is so we know which column will show the tree 
       text: 'Representation', 
       width: 360, 
       sortable: true, 
       dataIndex: 'text', 
       locked: true 
      }, { 
       text: 'Parents', 
       width: 430, 
       dataIndex: 'From', 
       sortable: true 
      }, { 
       text: 'NCID', 
       width: 430, 
       dataIndex: 'ncid', 
       sortable: true 

      }] 
     } 
    ] 
}); 

我什么也没得到。我该怎么办?

回答

1

使用itemexpand而不是nodeexpand它会工作。

我创造了你在这里检查的演示它是如何工作Sencha Fiddle

希望它会帮助你解决你的问题。

var store = Ext.create('Ext.data.TreeStore', { 
    autoLoad: true, 
    autoSync: false, 
    root: { 
     expanded: true 
    }, 
    proxy: { 
     type: 'ajax', 
     url: 'veddocs.json', 
     timeout: 300000, 
     reader: { 
      type: 'json', 
      root: 'children' 
     } 
    } 
}); 

Ext.create('Ext.tree.Panel', { 
    title: 'Simple Tree', 
    width: 200, 
    height: 150, 
    store: store, 
    rootVisible: false, 
    renderTo: Ext.getBody(), 
    listeners: { 
     itemexpand: function(node, eOpts){//Fires after this Panel has expanded. 
      Ext.Msg.alert('Success',`Your node <b>${node.get('text')}</b> is exapand`); 
     } 
    } 
}); 
+0

最后我找到了一个正确的事件叫'beforeload'。感谢您的帮助,Njdhv。 –

+0

非常欢迎☺ –