Обработка события itemclick на панели дерева Extjs 4 - PullRequest
7 голосов
/ 23 мая 2011

что я пытаюсь сделать, это получить другую реакцию на другое дерево LEAF click!

var myTree = Ext.create('Ext.tree.Panel',
    store: store,
    rootVisible: false,   
    border: false,
    listeners: {
        itemclick: function(index) {            
            var record = store.getAt(index);
            alert(record);          
        }
    }
});

Я пытался с индексом, чтобы получить индекс листьев, ничего.Я могу получить реакцию на щелчок узла, но как получить конкретную реакцию на каждом листе?Я также попытался дать удостоверение личности листьев, не повезло ???

Может быть, простой пример

itemclick: function(Ext.view.View this, Ext.data.Model record, HTMLElement item, Number index, Ext.EventObject e) {  

}

Помощь Pleeasse !!

Ответы [ 3 ]

10 голосов
/ 23 мая 2011

Параметр "index" функции прослушивателя itemclick не указывает на индекс вашего узла дерева.Как вы упомянули в конце вашего вопроса, синтаксис для события itemclick:

function(Ext.view.View this, Ext.data.Model record, HTMLElement item, Number index, Ext.EventObject e) {

}

Вот пример:

itemclick : function(view,rec,item,index,eventObj) {

    // You can access your node information using the record object
    // For example: record.get('id') or record.get('some-param')
    if(r.get('id')=='SP') {
        // I do my necessary logic here.. may be open a perticular window, grid etc..
    }

    if(r.get('id')=='CO') {
        // I do my necessary logic here.. may be open a perticular window, grid etc..
    }           
}

А вот пример узла моего дереваданные:

{ text: 'SP Reports', id: 'SP', leaf: true},
{ text: 'CO Reports', id: 'CO', leaf: true},
6 голосов
/ 23 мая 2011

Обработчик Itemclick уже дает вам все, что вам нужно:

itemclick(view, record, item, index, e ) {
    var id = record.get('id');
    // do something depending on the record data.
    // console.log(record);
}
3 голосов
/ 02 сентября 2011

Я пытался сделать общий обработчик щелчков элементов панели дерева и чтобы получить настраиваемое поле, которое я добавил к объекту узла. Это помогло мне. Я не знаю, если это стандартный и совместимый ExtJs 4 способ:

            (Some Panels Here),
            items: [{
                xtype: 'treepanel',
                listeners: {
                    itemclick: {

                        fn: function (view, record, item, index, e) {

                            console.log(record.raw.userData);
                        }
            (removed...)
...