2014-10-08 2 views
1

Использование extjs Я создаю кнопку цикла. Во время генерации я добавляю три пункт меню для этой кнопки цикла Ниже приведен код для этого,Extjs: динамически добавлять элемент к кнопке цикла

Ext.create('Ext.button.Cycle', { id: 'trneMapCycleBtn', showText: true, flex: 2, tooltip: "Click here to change boundary", prependText: '', menu: { id: 'view-type-menu', items: [{ text: 'Districts', checked: true, tootip: "Delhi Districts boundary", type: "getDistricts" }, { text: 'State', tootip: "Delhi State boundary", type: "getStates" },{ text: 'Circles', tootip: "Delhi Circles boundary", type: "getCircles" }] },

После его создания, я позже доступ к этой кнопке цикла, используя его идентификатор и пытаюсь добавить пункты меню в этом,

function createItemForGeoJason(){
var menuItem = new Ext.menu.CheckItem({ text : geoJsonLayerName, id: 'geoJsonItem', handler: function(menuItem){ var layer = map.getLayersByName(myTrendMapSelectedLayer); layer[0].setVisibility(false); var layer1 = map.getLayersByName(geoJsonLayerName); layer1[0].setVisibility(true); } });
Ext.getCmp('view-type-menu').add(menuItem); }

ответ

0

Вы должны перезапись добавление пункта меню, потому что класс Button не добавить функцию. Попробуйте это:

Ext.getCmp('view-type-menu').menu.add(menuItem); 
0

Использование так:

testButton.menu.add({ 
    xtype: "menucheckitem", 
    text: "some text", 
    group: testButton.id,     // important! 
    checkHandler: testButton.checkHandler, // important! 
    scope: xBtnChartCase     // important! 
}); 

вместо:

testButton.menu.add(new Ext.menu.CheckItem({...})); 
Смежные вопросы