Показать сообщение отдельно
  #4 (permalink)  
Старый 08.03.2012, 18:42
С++/C# modest developer
Отправить личное сообщение для nekto_O Посмотреть профиль Найти все сообщения от nekto_O
 
Регистрация: 07.11.2011
Сообщений: 244

Извиняюсь что невнимательно посмотрел ваш код.
Проверил, так работает:
{
	hiddenName: 'popType',
	xtype: 'combo',
	store: Ext.create('Ext.data.Store', {
		autoLoad: true,
		proxy: {
			url: 'php/test.php',
			type: 'ajax',
			reader: {
				root: 'topics',
				type: 'json',
				totalProperty: 'count',
				successProperty: 'success'
			}
		},
		fields: [ 'abbr', 'name'],
	}),
	valueField: 'abbr',
	displayField: 'name',
	emptyText: 'Select',
	selectOnFocus: true,
	editable: false,
	queryMode: 'local'
}


autoLoad: true лучше использовать когда у вас либо приложение небольшое, либо данных немного будет в хранилище. Если же например вы хотите загружать store при нажатии триггера, можно переопределить onTriggerClick у комбобокса, например:
onTriggerClick: function() {
	if( this.getStore().getCount() == 0 ) {
		this.getStore().load({
			callback: function() {
				this.expand();
			}.bind(this)
		});
	} else {
		( this.isExpanded ) ? this.collapse() : this.expand();
	}
}
Ответить с цитированием