2017-09-26 42 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

非常歡迎☺ –