Создание меню

Последнее обновление: 1.11.2015

Для создания меню в ExtJS предназначен класс Ext.menu.Menu:

Ext.onReady(function(){	
	var menu = Ext.create('Ext.menu.Menu', {
		width: 100,
		height: 100,
		margin: '0 0 10 0',
		renderTo: Ext.getBody(),
		floating: false,
		items: [{
			text: 'JavaScript',
		},{
			text: 'Java'
		},{
			text: 'C/C++'
		}]
	});
});
Меню в ExtJS

Указывая параметр floating: false мы фиксируем меню. А параметр items принимает массив объектов Ext.menu.Item, который используется в качестве пунктов меню. Причем в качестве объектов мы можем задавать разные компоненты, например, кнопки. В данном случае я указываю только свойство text.

Но также мы можем задать меню переключателей, указав группу и отмеченный вариант:

Ext.onReady(function(){	
	var menu = Ext.create('Ext.menu.Menu', {
		width: 100,
		height: 100,
		margin: '0 0 10 0',
		renderTo: Ext.getBody(),
		floating: false,
		items: [{
			text: 'JavaScript',
			checked:true,
			group: 'langs'
		},{
			text: 'Java',
			checked: false,
			group: 'langs'
		},{
			text: 'C/C++',
			checked: false,
			group: 'langs'
		}]
	});
});
Меню с переключателями в ExtJS

Используя различные свойства Ext.menu.Item, можно применить различные свойства. Например, задать обработчики выбора

Ext.onReady(function(){	
	var menu = Ext.create('Ext.menu.Menu', {
		width: 100,
		height: 100,
		margin: '0 0 10 0',
		renderTo: Ext.getBody(),
		floating: false,
		items: [{
			text: 'JavaScript',
			handler: function(){alert('Выбран JavaScript');}
		},{
			text: 'Java',
			handler: function(){alert('Выбран Java');}
		},{
			xtype: 'button',
			text: 'C/C++'
		}]
	});
});

Поскольку само по себе меню мало полезно, поэтому посмотрим на его применение в контейнерах на примере панели:

Ext.onReady(function(){	
	var menu = Ext.create('Ext.menu.Menu', {
		items: [{
			text: 'JavaScript',
			handler: function(){alert('Выбран JavaScript');}
		},{
			text: 'Java',
		},{
			text: 'C/C++'
		}]
	});
	Ext.create('Ext.panel.Panel', { 
		title: 'Панель с меню',
		width: 200,
		height: 150,
		renderTo: Ext.getBody(),
		tbar: [{                    // тулбар с меню
				xtype: 'splitbutton',
				text: 'Выбрать',     // кнопка с выпадащим меню
				menu:   menu
				}]
	});
});
Меню в панели в ExtJS

С помощью псевдонима xtype: 'splitbutton' мы указываем явным образом, что будет создаваться кнопка с меню, а именно объект класса Ext.button.Split. Это по сути обычная кнопка, отличающаяся только тем, что для нее можно задать меню.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850