2012-07-17 111 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