Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.04.2012, 11:47
Аспирант
Отправить личное сообщение для Eugent Посмотреть профиль Найти все сообщения от Eugent
 
Регистрация: 28.02.2012
Сообщений: 55

Правильная отрисовка combo в grid
Привет всем! Возможно мой вопрос покажется банальным но все же...

Есть редактируемая таблица, одно из полей которой должно быть списком выбора (combo). Нужно чтобы при отображении таблицы выводился не идентификатор отдела, а его название.

Пример - http://extdev.eugent.org/testero/. Пункт 'Editable Grid'.

Привожу описание столбца. Часть кода примера:
{
	text	: 'Department', 
	xtype	: 'numbercolumn',
	editor	: {
		xtype: 'combo',
		store: Ext.create('Ext.data.Store', {
			autoLoad: false,
			idProperty: 'id',
			
			fields: [
				{name: 'id',	type: 'int'},
				{name: 'name',	type: 'string'}
			],
			
			proxy: {
				type: 'ajax',
				url: '/testero/data/getdata.php',
				method: 'GET',
				extraParams: {
					type: 'departments'
				},
				reader: {
					root: 'data',
					type: 'json'
				}
			}
		}),
		typeAhead		: true,
		triggerAction	: 'all',
		lazyRender		: false,
		queryMode		: 'remote',
		displayField	: 'name',
		valueField		: 'id',
		editable		: false
	},
	flex	: 1,
	format	: '0',			
	hidden	: false
}
Ответить с цитированием
  #2 (permalink)  
Старый 27.04.2012, 13:12
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Помоему с editor как раз всё нормально
как вариант измени прорисовку самой таблицы.

{
    text    : 'Department',
    xtype   : 'numbercolumn',

    renderer: function(value){
         switch (value) {
                   case 1: return 'Управление';
                   case 2: return 'Бухгалтерия';

                   default: return 'Да хрен его знает что это такое )))';
         };    
         //Ещё прикольное гденибудь хранить store с отделами, и здесь из него извлекать имя по id (переданному в value).
   }
   editor :{
    //бла бла бла
   }
}
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 27.04.2012 в 13:51.
Ответить с цитированием
  #3 (permalink)  
Старый 27.04.2012, 13:15
Аспирант
Отправить личное сообщение для Eugent Посмотреть профиль Найти все сообщения от Eugent
 
Регистрация: 28.02.2012
Сообщений: 55

Хранилище приходит с сервера
Сообщение от DjDiablo Посмотреть сообщение
Помоему с editor как раз всё нормально
измени прорисовку самой таблицы.

renderer: function(value){
        if (value === 1) return 'Управление';
        if (value === 2) return 'бухгалтерия';    
   }
Это если список жесткий и небольшой, в системе, в которой это используется списки больше и строятся они динамически.

Хранилище combo подгружается с сервера.
Ответить с цитированием
  #4 (permalink)  
Старый 27.04.2012, 13:20
Аспирант
Отправить личное сообщение для Eugent Посмотреть профиль Найти все сообщения от Eugent
 
Регистрация: 28.02.2012
Сообщений: 55

Мне по идее желательно предварительно загрузить как-то хранилище комбо и потом изменить рендер, но комбо же используют не одно хранилище. Или как-то их нацелить на одно хранилище - что-то запутался я во всем этом...
Ответить с цитированием
  #5 (permalink)  
Старый 27.04.2012, 13:38
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

renderer только свой столбец рендерить будет.
В твоём примере комбо использует только одно хранилище.
Просто обьяви это хранилище гденибудь на стороне чтобы одним экземпляром полтзовались как renderer так и combo.

Меня сейчас занимает мысль, о том какой выигрыш можно было бы получить, используя ассоциации.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 27.04.2012 в 14:15.
Ответить с цитированием
  #6 (permalink)  
Старый 27.04.2012, 17:06
Аспирант
Отправить личное сообщение для Eugent Посмотреть профиль Найти все сообщения от Eugent
 
Регистрация: 28.02.2012
Сообщений: 55

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

Ну если у Вас хранилище содержит большой объем данных, да к тому же пополняемый, то конечно лучше использовать ассоциации. Если данных немного и они статические, можно их в локальном хранилище разместить, или же в коде (если очень мало).
Сообщение от Eugent
До ассоциаций у меня руки не доходят разобраться
Если вы знаете теорию реляционных баз данных, то смысл использования ассоциаций понять не составит труда
Ответить с цитированием
  #8 (permalink)  
Старый 28.04.2012, 13:22
Аспирант
Отправить личное сообщение для Eugent Посмотреть профиль Найти все сообщения от Eugent
 
Регистрация: 28.02.2012
Сообщений: 55

А есть у кого-нибудь такой пример с ассоциациями? глянуть для примера
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать реконфигурацию фильтра динамического Grid? Сергей З ExtJS 0 11.01.2012 15:16
Grid RowExpander Black_Prince ExtJS 0 14.07.2011 13:41
Использование combobox поля в grid dionic ExtJS 0 26.05.2011 14:12
Выделит row в grid mycoding ExtJS 1 29.07.2010 15:28
Grid + ComboBox kostiaGt ExtJS 3 05.11.2009 17:15