2012-07-17 88 views
0

我看了很多关于这个问题的文章,但是由于某种原因,我仍然有问题。我甚至试图用最少的数据创建一个面板,但仍然没有运气。这真的是我的大脑。下面是我的工作代码:ExtJS4 JSON数据没有填充Ext.grid.Panel

Ext.onReady(function() { 
    var proxy = new Ext.data.HttpProxy({ 
     url: path/to/app 
     api: { 
      load: path/to/app 
     } 
    }); 


    var reader = new Ext.data.JsonReader({ 
     successProperty : 'success', 
     idProperty  : 'id', 
     root   : 'data', 
     fields   : [{name:'id', type: 'int'}] 
    }); 

    var writer = new Ext.data.JsonWriter({ 
     encode: false, 
     writeAllFields: true 
    }); 

    var store = new Ext.data.Store({ 
     autoLoad : true, 
     autoSync : true, 
     root  : 'data', 
     restful : true, 
     fields : [{name: 'id'}], 
     proxy : proxy, 
     reader : reader, 
     writer : writer 
    }); 

    Ext.create('Ext.grid.Panel', { 
     renderTo : 'gadgetview', 
     store : store, 
     columns : [{ 
         header : 'ID', 
         text  : 'ID', 
         dataIndex : 'id', 
         width  : 50 
        }], 
     height : 200, 
     width : 450, 
     title : 'Example' 
    }); 
}); 

来自服务器的响应是:

{"data":[{"id":1}], "success":true} 

我希望它的东西,这是显而易见的。

回答

1

你的配置搞砸了。阅读器/写入器是代理上的属性。根是读者的财产。

Ext.onReady(function() { 

    var store = new Ext.data.Store({ 
     autoLoad: true, 
     fields: [{ 
      name: 'id' 
     }], 
     proxy: { 
      type: 'ajax', 
      url: 'myurl', 
      reader: { 
       type: 'json', 
       root: 'data' 
      } 
     } 
    }); 

    Ext.create('Ext.grid.Panel', { 
     renderTo: 'gadgetview', 
     store: store, 
     columns: [{ 
      header: 'ID', 
      text: 'ID', 
      dataIndex: 'id', 
      width: 50 
     }], 
     height: 200, 
     width: 450, 
     title: 'Example' 
    }); 
}); 
+0

埃文 - 帮助非常感谢和帮助解决我的问题。 – 2012-07-17 12:59:50