ComboStore не загружает данные

1

Я создаю combobox с этими параметрами, которые я дал.

displayField: 'TEXT',
valueField: 'ID',

Вот мой магазин

this.store = new Ext.data.Store({
    proxy: new Ext.data.HttpProxy({

        url: 'combodata.json',
        actionMethods: {
            read: 'GET'
        },
        reader: new Ext.data.JsonReader({
            rootProperty: 'ROOT.TAG'
        })
    }),
        fields: [
                    {name: 'ID', mapping: 'ID', type: 'string'},
                    {name: 'TEXT', mapping: 'TEXT', type: 'string'}
                ],
        autoLoad: true
    });

И вот мой JSON

{
    "ROOT": {
        "TAG": [{
            "ID": 01,
            "TEXT": "ABC"
        },
        {
            "ID": 02,
            "TEXT": "DEF"
        },
        {
            "ID": 03,
            "TEXT": "GHI"
        }]
    }
}

Я вижу, что URL-адрес идет в ответ, но данные не загружаются в combobox. Даже данные не собираются хранить. Может ли кто-нибудь помочь мне, почему данные не загружаются в комбо. Обновить :

this.store = new Ext.data.Store({
            autoLoad: true,
            fields: [
                    {name: 'ID', mapping: 'ID', type: 'string'},
                    {name: 'TEXT', mapping: 'TEXT', type: 'string'}
                ],
            proxy: new Ext.data.HttpProxy({

                url: 'adata.json',//this.url,
                headers: {
                        'Accept': 'application/json; charset=utf-8'
                    },
                actionMethods: {
                    read: 'GET'
                },
                reader: new Ext.data.JsonReader({
                    root: 'ROOT'
                })
            })
        });
  • 0
    Вы проверили в консоли то, загружается ли хранилище со списком или нет с помощью метода <comboElement> .getStore (). Проверьте, какие значения присутствуют
  • 0
    Магазин загружается, но store.data не имеет элементов
Показать ещё 1 комментарий
Теги:
extjs
extjs3

2 ответа

1
Лучший ответ

Я сделал эту скрипку, я загружаю комбо из файла JSON.

Обратите внимание, что внутри папки " Assets " есть файл JSON data.json, загружаемый хранилищем.

Как заметил Лоренц, необходимо внести некоторые изменения, взглянуть, я надеюсь, что смогу вам помочь!

  • 0
    Можете ли вы сделать это в Ext 3
  • 0
    У меня нет ExtJS 3, но если вы знаете где-то, например, fiddle.sencha.com, где у вас есть инструмент для разработки, я могу попробовать.
Показать ещё 1 комментарий
0

Теги указывают, что вы используете ExtJs 3.4. rootProperty не был доступен в этой версии. Вместо этого используйте root.

Кроме того, я не думаю, что ExtJs 3.4 уже разрешил указывать вложенный корень, такой как root: 'ROOT.TAG', возможно, это невозможно, вам нужно либо изменить формат возвращаемого JSON, либо обновить до более новой версии ExtJs.

Попробуйте использовать этот формат с помощью root: 'ROOT':

{
    "ROOT": [{
        "ID": 01,
        "TEXT": "ABC"
    },
    {
        "ID": 02,
        "TEXT": "DEF"
    },
    {
        "ID": 03,
        "TEXT": "GHI"
    }]
}
  • 0
    Спасибо за ответ. Я изменился, но не повезло. Что если я изменю свой ответ следующим образом ... <ROOT> <I ID="1" TEXT="AB1" /> <I ID="2" TEXT="AB2" /> </ROOT> В этом случае, как я нужно продолжить.
  • 0
    Вы изменили JSON на XML. Я никогда не использовал XML с ExtJ, поэтому я не могу помочь в этом. Но я обновил свой ответ, указав формат JSON, который должен работать.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню