2009-12-24 4 views
1

Вот моя функция Extjs onReadyПочему мой extjs combobox не заполняется динамически?

var store = new Ext.data.Store({ 
            proxy: new Ext.data.HttpProxy({ 
            url: '/loginjson.json' 
            }), 

            reader: new Ext.data.JsonReader(
            {root: 'row', fields:['dblist']} 
            ) 
        }); 
      store.load(); 

и здесь я использую его в моих FormPanel как

renderTo: document.getElementById("loginform"), 
            title: "Login Form", 
            items: [{ 
             xtype: 'combo', 
             fieldLabel: 'genre', 
             name: 'genre', 
             store: store, 
             autoLoad: true, 
             displayField: 'dblist', 
            } 

и JSON URL Джанго возвращается, как этот

http://localhost:8000/loginjson.json 

{"row": [{"dblist": "datalist"}]} 

но мой combobox не заполнен. Я отсутствовал где-то на extJS, но не смог найти.

ответ

4

Если вы ожидали ComboBox вести себя как поле выбора HTML затем добавить в свой ComboBox CONFIG свойство:

triggerAction: 'all' 

Это будет гарантировать, что все детали в магазине будет отображается, когда нажата кнопка триггера поля.

выпадающий список конфигурации также будет нуждаться в собственности valueField:

valueField: 'dblist' 

Кроме того, явного вызова метода загрузки магазина не нужно. ComboBox будет обрабатывать это для вас в соответствующее время.

+0

@owlness спасибо, с первой попытки это сработало, можете ли вы предложить мне любой PDF-файл или онлайн-портал, который поможет мне разобраться в таких проблемах. поскольку сейчас я фиктивный для extjs. – shahjapan

+0

Лучший ресурс ExtJS - сайт ExtJS (http://www.extjs.com/). Между документацией API, форумами, примерами и вики («Учебный центр») есть много знаний, которые необходимо получить. – owlness

+0

Вы сэкономили много усилий для меня. Спасибо за сову – Sandeep

0

Я думаю, что свойство полей вашего считывателя JSON настроено неправильно. Попробуйте это:

reader: new Ext.data.JsonReader({ 
      root: 'row' 
     , fields:[{name: "dblist"}] 
     }) 
+0

Обычные имена строк допустимы в массиве полей читателя. Они по умолчанию вводят «авто». – owlness

+1

Спасибо за сову! –

Смежные вопросы