У меня очень странная проблема с удаленным магазином Wich выглядит следующим образом:Extjs 4,2 удаленный фильтр на выпадающем списке
магазин:
Ext.define('freetextOrder.store.Attachment', {
extend: 'Ext.data.Store',
model: 'freetextOrder.model.Attachment',
autoLoad: false,
proxy: {
actionMethods: {
create: "POST",
read: "POST",
update: "POST",
destroy: "POST"
},
type: 'ajax',
filterParam: 'filter',
remoteFilter: true,
autoSync: true,
api: {
read: 'ajax/Attachment/Cartarticle/Init',
update: 'ajax/Attachment/Cartarticle/Update',
create: 'ajax/Attachment/Cartarticle/Create',
destroy: 'ajax/Attachment/Cartarticle/Destroy'
},
reader: {
type: 'json',
root: 'results',
successProperty: 'success'
},
writer: {
type: 'json',
allowSingle: false
},
extraParams: {sid: config.sid}
},
listeners: {
datachanged: function (store) {
if (Ext.getCmp('attachmentGrid'))
if (store.getCount() > 0) {
Ext.getCmp('attachmentGrid').show();
} else {
Ext.getCmp('attachmentGrid').hide();
}
}
}
});
модель:
Ext.define('freetextOrder.model.Attachment', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'int'},
{name: 'cartarticle_id', type: 'int'},
{name: 'orig_filename', type: 'string'},
{name: 'upload_time', type: 'date'}
]
});
И моя миссия невыполнима, загрузить фильтр из магазина:
{
xtype: 'combobox',
queryMode: 'local',
mode: 'local',
fieldLabel: 'template',
id: 'attachmentTemplate',
name: 'test',
store: Ext.create('freetextOrder.store.Attachment'),
valueField: 'cartarticle_id',
displayField: 'orig_filename',
lazyInit: false,
editable: true,
invalidCls: '',
listeners: {
afterrender: function() {
var combo = Ext.getCmp('attachmentTemplate')
combo.getStore().clearFilter(true);
combo.getStore().addFilter({property: 'id', value: config.options.attTemplateIds});
combo.getStore().load();
console.log(combo.getStore().getById(49));
}
}
}
Проблема - это событие, которое я пытаюсь использовать, я пробовал все, чтобы черт возьми загружать элементы магазина, но он просто не сдвинется с места.
Консоль.log (combo.getStore(). GetById (49)); возвращает объект, чтобы хранилище было загружено. но somhow он не загружается в опционы выпадающего это сам ....
Wierd ЧАСТЬ IS:
Когда я перейти на страницу и выполнить код в хромированном COMAND строке:
var combo = Ext.getCmp('attachmentTemplate')
combo.getStore().clearFilter(true);
combo.getStore().addFilter({property: 'id', value: config.options.attTemplateIds});
combo.getStore().load();
Параметры загружаются. Я нахожусь на конце своей веревки. Мне нужно пройти через config.options.attTemplateIds к фильтру. tht является единственным требованием. и значение tht доступно только в том случае, когда определяется xtype: 'combobox'.
Для идиотских саков я даже попробовал самый взломанный вариант setTimeout вокруг элементов ... все еще ничего ... действительно странное поведение.
Почему у вас есть запросMode: local? Вы пытались его удалить? – gabuh
Изменить 'queryMode: 'local'' на' queryMode:' remote'' –
Уже пробовал это. нет эффекта. Единственное, что он делает, это сделать нагрузку медленнее. но все же данные не показывались. – Sangoku