Событие «nodeexpand» панели дерева в Extjs6.5 не работает

Я пытаюсь создать TreePanel, что-то вроде проводника папок. Я пытаюсь найти событие, когда я нажимаю Расширитель узла (как показано на следующем снимке экрана) на моей панели дерева.

Кто-нибудь знает, что такое правильное событие?

Вот код для моего представления:

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

            }]
        }
    ]
});

Я ничего не получаю. Как я могу сделать для этого?


person 蔡亞林    schedule 26.09.2017    source источник


Ответы (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`);
        }
    }
});
person Narendra Jadhav    schedule 26.09.2017
comment
Наконец-то я нахожу правильное событие под названием «до загрузки». Спасибо за помощь, Njdhv. - person 蔡亞林; 29.09.2017