2013-02-28 86 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(); 

我在各方面都试过..但我不知道是什么去做!