Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.06.2012, 15:58
Новичок на форуме
Отправить личное сообщение для evgen.matyaschuk Посмотреть профиль Найти все сообщения от evgen.matyaschuk
 
Регистрация: 17.08.2011
Сообщений: 5

Ext grid combobox json
Всем привет.

Есть вот такое

<div id="main-data-grid" class="main-data-grid"></div>
<script type="text/javascript">
		Ext.onReady(function() {

			//Model
			Ext.define('Model', {
				extend: 'Ext.data.Model',
				fields: ['id', 'combo'],
				proxy: {
					url: '',
					type: 'ajax',
					extraParams: {
						'_method': 'get',
						'params[class]': 'data'
					},
					reader: {
						root: 'data'
					}
				}
				/*
					ответ сервера
					{
						success: 1,
						message: "Data loaded success.",
						data: [
							{
								id: "1",
								combo: "2",
								relation: {
									combo: {
										id: "2",
										name: "combo 2"
									}
								}
							}
						]
					}
				*/
			});

			Ext.define('ComboModel', {
				extend: 'Ext.data.Model',
				fields: ['id', 'name'],
				proxy: {
					url: '',
					type: 'ajax',
					extraParams: {
						'_method': 'get',
						'params[class]': 'comboData'
					}
				},
				reader: {
					root: 'data'
				}
				/*
					ответ сервера
					{
						success: 1,
						message: "Data loaded success.",
						data: [
							{
								id: "1",
								name: "combo 1"
							},
							{
								id: "2",
								name: "combo 2"
							}
						]
					}
				*/
			});

			//Store
			var store = Ext.create('Ext.data.Store', {
				model: 'Model',
				autoLoad: true
			});

			var comboStore = Ext.create('Ext.data.Store', {
				model: 'ComboModel'
			});

			//Grid
			Ext.create('Ext.grid.Panel', {
				plugins: [
					Ext.create('Ext.grid.plugin.CellEditing', {
						clicksToEdit: 2
					})
				],

				renderTo: Ext.getDom('main-data-grid'),
				store: store,
				columns: [
					{
						dataIndex: 'id',
						hidden: true,
						hideable: false
					},
					{
						header: 'Combo',
						dataIndex: 'combo',
						editor: { //проблема здесь, при 2 клике шлеться запрос на сервер, 
							xtype: 'combo', //получаем данные описанные выше в виде коментария под reader в ComboModel
							store: comboStore, //при этом выпадающий список пустой, в него эти данные не подгружаються
							displayField:'name'
						},
						renderer: function(val, cell, doc, idx) { //вместо 2 выводим "combo 2"
							return doc.raw.relation.combo.name;
						}
					}
				]
			});

		});
	</script>


как все таки заставить combobox выводить данные?
Ответить с цитированием
  #2 (permalink)  
Старый 18.06.2012, 18:43
Новичок на форуме
Отправить личное сообщение для evgen.matyaschuk Посмотреть профиль Найти все сообщения от evgen.matyaschuk
 
Регистрация: 17.08.2011
Сообщений: 5

В ComboModel

reader: {
       root: 'data'
}


должен находиться внутри proxy

proxy: {
	url: '',
	type: 'ajax',
	extraParams: {
		'_method': 'get',
		'params[class]': 'comboData'
	},
	reader: {
		root: 'data'
	}
}


а не

proxy: {
	url: '',
	type: 'ajax',
	extraParams: {
		'_method': 'get',
		'params[class]': 'comboData'
	}
},
reader: {
	root: 'data'
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
json данные не грузятся в windows XP но грузятся в w7 rustamaha Элементы интерфейса 2 28.11.2011 12:35
JSON или JSONP для запросов на другой сервер? Метод GET, для длинных сообщений? Kotakota jQuery 5 23.08.2011 23:12
Использование combobox поля в grid dionic ExtJS 0 26.05.2011 14:12
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10
Grid + ComboBox kostiaGt ExtJS 3 05.11.2009 17:15