Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > загрузка Ext.form.Combobox из удаленного массива


Автор: Paher 13.6.2012, 22:58
Добрый день, уважаемые! Два дня промучался, гугл не помог, надеюсь на вашу помощь.

Задача следующая. С удаленного сервера надо получить массив данных в Ext.data.SimpleStore и занести данные в комбобокс. Значений много, поэтому хочу передавать с сервера именно массивом, а не словарем, чтобы не тянуть ненужные ключи. Мой код(последний из вариантов):

Код

var ds = new Ext.data.SimpleStore({
    url: host,
    autoLoad: true,
    root: 'rows',
    fields: ['state']
});

var stateCombo = new Ext.form.ComboBox({
    store: ds,
    valueField: 'state',
    displayField: 'state'
});

Сервер возвращает данные в виде(тоже последний вариант):
({"rows": [["state1"], ["state2"]]})

В firebug'е видно, что запрос проходит и данные возвращаются, но комбобокс так и не заполняется. В примерах из гугла либо происходит загрузка из локального массива(т.е. 
например, из параметра data: [["state1"],["state2"]]. Такой я пробовал, работает и у меня), либо не работают вообще, как, например, http://extjs.wima.co.uk/example/1. Надеюсь, подскажите, в каком направлении мне исправляться

P.S. скорее всего, неверно передается массив с сервера, но я нигде не нашел примера, как передавать массив

Автор: ashain 14.6.2012, 06:06
Для начала, попробуйте добавить своему комбо боксу это:
Код

mode: 'remote'

Автор: Paher 14.6.2012, 08:26
К сожалению, результат прежний

Автор: ashain 14.6.2012, 09:13
А что с официальное документацией и примерами? Там их вроде предостаточно, я затрудняюсь помочь когда работа идёт с json объектами. По воле судьбы приходиться работать с xml данными.

Автор: Paher 14.6.2012, 09:25
В том-то и дело, с Json-объектами  работает все хорошо, а я хочу загружать обычный двумерный массив JavaScript, чтобы не тянуть названия полей каждый раз, тем более, что оно всего одно. В примерах, как я уже сказал, повсеместно используется локальный массив. Для загрузки удаленных данных повсюду используется Json.  Видимо, придется и мне отказаться от чистого массива, и перейти на Json

Автор: skyboy 14.6.2012, 10:39
у store настрой http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.reader.Array

Автор: Paher 4.9.2012, 16:12
Спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)