将数据加载到JsonStore

时间:2010-10-24 17:08:46

标签: data-binding extjs jsonstore

我正在尝试将一些简单的数据放入JsonStore,但它似乎不起作用。代码几乎与示例相同:

var itemListStore = new Ext.data.JsonStore({
   url: '/items/list',
   root: 'items',
   fields: [
      {name: 'id', type: 'string'},
      {name: 'name', type: 'string'},
   ]
});
itemListStore.load(); 
...
      items: [
      {
         xtype: 'listview',
         store: itemListStore,
         columnResize: false,
         flex: 1,
         columns: [
            {header: 'ID', dataIndex: 'id'},
            {header: 'Name', dataIndex: 'name'},
         ]
      }
...

不幸的是,这不起作用。该表加载时没有行,商店的计数为68(由服务器返回,通过listview.getStore().getCount()获得)。如果我用一个ArrayStore和一些静态数据替换JsonStore,我可以看到它们。

/items/list的结果只是:

{"items":
    [{"id": "a", "name": "Some name"},
    {"id": "b", "name": "Some other name"}]
}

我该如何解决这个问题?我该怎么调试呢?

编辑:更新了有关记录计数的信息

1 个答案:

答案 0 :(得分:2)

你可以尝试这样的商店:

            store: objPlanManagerStore = new Ext.data.Store({
                autoLoad: true,
                proxy: new Ext.data.HttpProxy({
                    url: '/your/url',
                    method: 'POST'
                }),
                reader: new Ext.data.JsonReader({
                    root: 'plans',
                    id: 'id',
                    fields: ['id', 'name', 'descr', 'tname', 'type', 'recurring']
                }),
                listeners: {
                    loadexception: function() {
                        Ext.Msg.alert('Title', 'msg');
                    }
                }
            });

(刚从我的一些代码粘贴)

编辑:考虑一下,商店似乎不是问题。