2013-02-28 82 views
0

我向返回數據庫查詢結果的servlet發出一個ajax請求。 我可以看到螢火蟲的反應,我想把這些結果放在我已經創建的列表(或其他..)。在閱讀JSON響應時遇到一些問題

我試圖讀取this post但它並沒有幫助我..

代碼:

這是Ajax請求:從servlet的(螢火蟲)

     Ext.Ajax.request({ 
         url: '/VIProject/Container', 

         success: function (action){alert('Lista caricata!'); console.debug(action); }, 
         failure: function(){alert('Errore nel caricamento...');}, 
         headers: { 
          'my-header': 'foo' 
         }, 
         params: { action: "GETCONTAINERLIST" } 
        }); 

響應:

{"message":"OK","container":[{"idOrdine":"1","numLotto":"123"},{"idOrdine":"2","numLotto":"321"},{"idOrdine":"3","numLotto":"876"}],"success":true} 

list:

var listView = Ext.create('Ext.grid.Panel', { 
    width:425, 
    height:250, 
    id: 'lista', 
    collapsible:true, 
    title:'Simple ListView <i>(0 items selected)</i>', 
    store: //??? 
    multiSelect: true, 
    viewConfig: { 
     emptyText: 'No images to display' 
    }, 

    columns: [{ 
     text: 'idOrdine', 
     flex: 15, 
     sortable: true, 
     dataIndex: 'idOrdine' 
    },{ 
     text: 'Last Modified', 
     flex: 20, 
     sortable: true, 
     dataIndex: 'numLotto' 
    }] 
}); 

我該怎麼辦?

回答

0

我修改代碼以使用商店:

Ext.define('MyModel', { 
    extend: 'Ext.data.Model', 
    fields: ['idOrdine', 'numLotto'] 
}) 

var listView = Ext.create('Ext.grid.Panel', { 
    width:425, 
    height:250, 
    id: 'lista', 
    collapsible:true, 
    title:'Simple ListView <i>(0 items selected)</i>', 
    store: store: { 
     model: MyModel, 
     autoLoad: true, 
     proxy: { 
      type: 'ajax', 
      url: '/VIProject/Container', 
      reader: { 
       type: 'json', 
       root: 'container' 
      } 
     } 
    }, 
    multiSelect: true, 
    viewConfig: { 
     emptyText: 'No images to display' 
    }, 

    columns: [{ 
     text: 'idOrdine', 
     flex: 15, 
     sortable: true, 
     dataIndex: 'idOrdine' 
    },{ 
     text: 'Last Modified', 
     flex: 20, 
     sortable: true, 
     dataIndex: 'numLotto' 
    }] 
}); 
+0

謝謝你的回答。我試着用你的代碼,但沒有任何反應。我的列表是空的..:s我有一個servlet的響應,但我不能使用這個數據..幫助! – 2013-02-28 16:24:40

+0

您需要發佈更多信息。它是否向服務器發出請求?另外,在你的代碼中你永遠不會渲染網格。你在別的地方做這個嗎? – 2013-02-28 22:07:37

0

即使這樣它的工作原理:

 var proxy=new Ext.data.HttpProxy({url:'/VIProject/Container'}); 

    var reader=new Ext.data.JsonReader({},[ 
      {name: 'idOrdine', mapping: 'idOrdine'}, 
      {name: 'numLotto', mapping: 'numLotto'} 
    ]); 

    var store=new Ext.data.Store( { 
     proxy:proxy, 
     reader:reader 
    }); 

    store.load(); 

我在各方面都試過..但我不知道是什麼去做!