Обработка события itemclick на панели дерева Extjs 4
то, что я пытаюсь сделать, - это получить другую реакцию на другое дерево 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);
}
}
});
Я попробовал с индексом, чтобы получить индекс листа, ничего.
Я могу получить реакцию на клик node, но как получить конкретную реакцию на каждом листе?
Я также попытался дать идентификатор листьям, не повезло
Возможно, простой пример
itemclick: function(Ext.view.View this, Ext.data.Model record, HTMLElement item, Number index, Ext.EventObject e) {
}
Помогите Pleeasse!!
Ответы
Ответ 1
Функция itemclick
функции прослушивателя событий "index" не указывает на ваш индекс дерева node. Как вы упомянули в конце своего вопроса, синтаксис для события 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..
}
}
И вот пример моего дерева node data:
{ text: 'SP Reports', id: 'SP', leaf: true},
{ text: 'CO Reports', id: 'CO', leaf: true},
Ответ 2
Обработчик Itemclick уже дает вам все, что вам нужно:
itemclick(view, record, item, index, e ) {
var id = record.get('id');
// do something depending on the record data.
// console.log(record);
}
Ответ 3
Я пытался сделать общий обработчик кликов элемента treepanel и иметь возможность получить настраиваемое поле, которое я добавил в объект node. Это помогло мне. Я не знаю, является ли это стандартным и совместимым с ExtJs 4 способом:
(Some Panels Here),
items: [{
xtype: 'treepanel',
listeners: {
itemclick: {
fn: function (view, record, item, index, e) {
console.log(record.raw.userData);
}
(removed...)