我正在尝试创建一个TreePanel,就像文件夹资源管理器一样。我在树形面板中单击Node Expander(如下面的屏幕截图)时试图找到该事件。
有谁知道什么是正确的事件?
以下是我的观点代码:
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
}]
}
]
});
我一无所获。我该怎么做?
答案 0 :(得分: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`);
}
}
});