Пункт меню в Ext-JS4 - PullRequest
       5

Пункт меню в Ext-JS4

1 голос
/ 29 января 2012

Я новичок в Ext-JS4.Я работаю над проектом, в котором я настраиваю панель инструментов.Я добавил несколько кнопок на панель инструментов, одна из которых имеет меню, а меню в основном имеет сетку, которая загружается из магазина JSON.Сетка используется в меню из-за такого требования в проекте.Сетка загружена правильно, но мне нужен доступ к пункту меню, по которому щелкают внутри меню.Я хочу, чтобы текст пункта меню был нажат.Следующий код лучше объяснит мой вопрос.

var store = Ext.create('Ext.data.Store', {
    storeId : 'favStore',
    model : favModel,
    autoLoad : true,
    groupField : 'group_header',
    proxy : {
        type : 'ajax',
        url : '../../data/favorites.json',
        reader : {  
            type : 'json',
            root : 'favoritesMenu'
        }
    }   
});


var favGrid = Ext.create('Ext.grid.Panel', {
    store : store,
        columns : [{
            dataIndex : 'listItem',
            width : 200
        }],
        features : [groupingFeature],
        width : 200,
        height : 275,
        autoHeight : true,
        border : false
});

var favMenu = Ext.create('Ext.menu.Menu', {
    items : [favGrid],
    listeners : {
        'click' : function(store,item) {
            alert('Item clicked= ');//tried item.text here but not working
        }
    }
});

В методе alert для события click я хочу, чтобы текст пункта меню был нажат.Я надеюсь, что я ясен с вопросом.Кто-нибудь может дать мне несколько советов?Также кто-нибудь может предложить мне несколько хороших блогов на Ext-JS4?

Все эти вещи определены в методе initComponent Ext.define () для панели инструментов.

Ответы [ 3 ]

0 голосов
/ 29 января 2012

Я считаю, что в вашем случае вы хотите, чтобы слушатель был привязан к вашей сетке, а не к меню. Что-то вроде ...

var favGrid = Ext.create('Ext.grid.Panel', {
  store : store,
  columns : [{
    dataIndex : 'listItem',
    width : 200
  }],
  features : [groupingFeature],
  width : 200,
  height : 275,
  autoHeight : true,
  border : false,
  listeners: {
    'itemclick': function(view, record, item, index, e, eOpts){
      //Assuming 'name' is a fieldname in the record
      alert('item clicked = ' + record.get('name')); 
    }
  }
});

Ознакомьтесь с документацией Ext.grid.Panel здесь: http://docs.sencha.com/ext-js/4-0/#!/api/Ext.grid.Panel. Нажмите на «события» вверху и найдите «itemclick».

0 голосов
/ 01 июня 2013

или вы можете сделать так, чтобы ваше меню прослушивало событие сетки, передавая события.

favMenu.relayEvents(favGrid, ['itemclick']);
favMenu.on('itemclick', me.onFavFunction, me);
0 голосов
/ 29 января 2012

Вы можете использовать документацию.Для меня это было очень полезно:

http://docs.sencha.com/ext-js/4-0/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...