Флажки и переключатели

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

Переключатели представляют собой группу флажков, из которых мы можем выбрать только один. Для формирования набора переключателей или радиокнопок, нам надо использовать класс Ext.form.RadioGroup, который имеет xtype=radiogroup. Объект этого класса принимает массив радиокнопок:

Ext.onReady(function(){
	var radioGroupAutoLayout = Ext.create('Ext.form.Panel', {
		title: 'Переключатели',
		width: 400,
		autoHeight: true,
		bodyPadding: 5,
		items: [{
			xtype: 'radiogroup',
			fieldLabel: 'Пол',
			items: [{
			boxLabel: 'Мужской',
			name: 'gender',
			inputValue: 'male'
			}, {
			boxLabel: 'Женский',
			name: 'gender',
			inputValue: 'female'
			}]
		}],
		renderTo: Ext.getBody(),
		style: 'margin: 10px'
	});
});

Поле fieldLabel указывает на заголовок группы переключателей. Для отображения некоторого текста каждый переключатель имеет свойство boxLabel. Другое полезное свойство inputValue указывает на значение радиокнопки.

По умолчанию все радиокнопки размещаются в одну строку по одной в каждом столбце. Но мы можем сделать вертикальный набор столбцов, чтобы каждая кнопка начиналась с новой строки. Для этого нам надо установить у объекта RadioGroup vertical: true и указать нужное количество столбцов:

Ext.onReady(function(){
	var radioGroupAutoLayout = Ext.create('Ext.form.Panel', {
		title: 'Переключатели',
		width: 300,
		autoHeight: true,
		bodyPadding: 5,
		items: [{
			xtype: 'radiogroup',
			columns: 2,
			vertical: true,
			items: [{
			boxLabel: 'Капуста',
			name: 'veg',
			inputValue: 'cabbage'
			}, {
			boxLabel: 'Морковь',
			name: 'veg',
			inputValue: 'carrot'
			}, {
			boxLabel: 'Свекла',
			name: 'veg',
			inputValue: 'beat'
			}, {
			boxLabel: 'Лук',
			name: 'veg',
			inputValue: 'onion'
			}]
		}],
		renderTo: Ext.getBody(),
		style: 'margin: 10px'
	});
});
вертикальная группа переключателей

Установив columns: 2, мы сделали разбиение группы радиокнопок на два столбца.

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

Ext.onReady(function(){
	var checkboxGroup = new Ext.form.CheckboxGroup({
		columns: 1,
		fieldLabel: 'Овощи',
		name: 'veg',
		style: {
		padding: '5px 10px 5px 10px'
		},
		items: [{
			xtype: 'checkbox',
			boxLabel: 'Капуста',
			name: 'veg',
			inputValue: 'cabbage',
			checked:'true',
		}, {
			xtype: 'checkbox',
			boxLabel: 'Морковь',
			name: 'veg',
			inputValue: 'carrot'
		}, {
			xtype: 'checkbox',
			boxLabel: 'Свекла',
			name: 'veg',
			inputValue: 'beat'
		}, {
			xtype: 'checkbox',
			boxLabel: 'Лук',
			name: 'veg',
			inputValue: 'onion'
		}]
		});
		var panel = new Ext.Panel({
			renderTo: Ext.getBody(),
			title: 'Овощи',
			width:200,
			height:150,
			items: [checkboxGroup]
	});
});
Использование чекбоксов в ExtJs 4
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850