Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.12.2011, 17:06
Новичок на форуме
Отправить личное сообщение для Сергей З Посмотреть профиль Найти все сообщения от Сергей З
 
Регистрация: 02.12.2011
Сообщений: 5

Как сделать загрузку Store в поле Grid в зависимости от id строки?
Есть задача: Создать грид с насзванием груп и участников группы , но поле участников группы в виде комбо и Стор должен загружатся в зависимости от id группы.. (для каждой строки отдельно).. не могу уяснить 2 момента : как передать id для формирования Стора и каким образом сделать его загрузку именно в момент запуска едитора для конкретного поля...
пробовал так, но это вариант для загрузки Стора поля не зависимо от id:
columns : [
{header: I('id'), width: 50, sortable: true, dataIndex: 'id'}
,{header: I('Departments_name'), width: 160, sortable: true, dataIndex: 'Departments_name', editor: new Ext.form.TextField({})}
,{header: I('Departments_price'), width: 150, sortable: true, dataIndex: 'Departments_price',editor: new Ext.form.NumberField({})}
,{header: I('Departments_staff'), width: 150, sortable: true, dataIndex: 'Departments_staff',
editor: new Ext.form.ComboBox({
store: DepartmentsStore,
xtype: 'combo',
valueField:'id',
displayField:'value',
mode:'local',
lazyRender:true,
anchor: '100%',
hideLabel: true,
editable: false,
selectOnFocus:true,
triggerAction: 'all',
hiddenName: 'Departments_staff',
name: 'Departments_staff'

})}
Ответить с цитированием
  #2 (permalink)  
Старый 02.12.2011, 17:43
Новичок на форуме
Отправить личное сообщение для Сергей З Посмотреть профиль Найти все сообщения от Сергей З
 
Регистрация: 02.12.2011
Сообщений: 5

попробовал:
columns : [
{header: I('id'), width: 50, sortable: true, dataIndex: 'id'}
,{header: I('Departments_name'), width: 160, sortable: true, dataIndex: 'Departments_name', editor: new Ext.form.TextField({})}
,{header: I('Departments_price'), width: 150, sortable: true, dataIndex: 'Departments_price',editor: new Ext.form.NumberField({})}
,{header: I('Departments_staff'), width: 150, sortable: true, dataIndex: 'Departments_staff', listeners: {
dblclick: function() {
Ext.getCmp('DepStore').store.load(); }

},
editor: new Ext.form.ComboBox({
store: new Ext.data.ArrayStore(
{
xtype: 'jsonstore',
storeId: 'Departments',
url: 'block/json/get_Departments.php',
fields: ['id','value'],
initComponent:function() {
this.addEvents('ready');
},
is_ready:function() {
this.fireEvent('ready', this);
}
}) ,
xtype: 'combo',
valueField:'id',
id:'DepStore',
displayField:'value',
mode:'local',
lazyRender:true,
anchor: '100%',
hideLabel: true,
editable: false,
selectOnFocus:true,
triggerAction: 'all',
hiddenName: 'Departments_staff',
name: 'Departments_staff'

})}
работает, но так будет загружатся весь Стор.., а как передать id не понятно.. пробовал в листенер функцию пихнуть (value,p,r) а потом передать r.data.id пишет что не знает что такое r..
Ответить с цитированием
  #3 (permalink)  
Старый 02.12.2011, 18:29
С++/C# modest developer
Отправить личное сообщение для nekto_O Посмотреть профиль Найти все сообщения от nekto_O
 
Регистрация: 07.11.2011
Сообщений: 244

var r = grid.getSelectionModel().getSelected();
var id = r.get('id');
Ответить с цитированием
  #4 (permalink)  
Старый 02.12.2011, 18:44
Новичок на форуме
Отправить личное сообщение для Сергей З Посмотреть профиль Найти все сообщения от Сергей З
 
Регистрация: 02.12.2011
Сообщений: 5

это идея.. СПАСИБО! остается при загрузке стора менять url
пробовал:
Ext.getCmp('DepStore').store.url = 'myPage.php?id='+id;
Ext.getCmp('DepStore').store.load();
свойство меняет а загрузка всеравно с того что выставлен..
пробовал

Ext.getCmp('DepStore').store.load({url:'myPage.php ?id='+id});
не работает..
Ответить с цитированием
  #5 (permalink)  
Старый 02.12.2011, 18:54
С++/C# modest developer
Отправить личное сообщение для nekto_O Посмотреть профиль Найти все сообщения от nekto_O
 
Регистрация: 07.11.2011
Сообщений: 244

Сообщение от Сергей З
остается при загрузке стора менять url
зачем url менять? просто параметр в store передавайте и все...
Ext.getCmp('DepStore').store.load({
 params: {id: r.get('id')}
});

или как теперь в 4-м ExtJS...

Последний раз редактировалось nekto_O, 02.12.2011 в 18:57.
Ответить с цитированием
  #6 (permalink)  
Старый 02.12.2011, 19:01
Новичок на форуме
Отправить личное сообщение для Сергей З Посмотреть профиль Найти все сообщения от Сергей З
 
Регистрация: 02.12.2011
Сообщений: 5

понял .. хотя с URL тоже получилось .. просто не туда стучался.. надо к store.proxy.conn.url ..

Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрипт бегущей строки - как сделать строку непрерывной dansury Элементы интерфейса 9 26.01.2013 04:54
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
Как сделать, чтобы 2 ссылки отображались как hover при наведении мышкой на любую? Ava Элементы интерфейса 5 19.05.2009 23:24
как сделать плавное затухание страницы magistr_bender Элементы интерфейса 1 18.03.2009 14:34
Как сделать справочное окно? Vlaimir Events/DOM/Window 13 05.01.2009 14:06