2013-02-28 5 views
0

Je fais une requête ajax à la servlet qui renvoie le résultat d'une requête de base de données. Je peux voir avec la réponse firebug et je veux mettre ces résultats dans une liste (ou autre ..) que j'ai déjà créée.Problèmes lors de la lecture de la réponse JSON

J'ai essayé de lire this post mais il ne m'a pas aidé ..

code:

c'est la demande ajax:

     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" } 
        }); 

réponse de servlet (Firebug):

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

liste:

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' 
    }] 
}); 

Comment puis-je faire?

Répondre

0

J'ai modifié votre code pour utiliser un magasin:

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

Merci pour votre réponse. J'ai essayé avec votre code mais rien ne se passe. Ma liste est vide ..: s j'ai une réponse de la servlet mais je ne peux pas utiliser cette donnée .. aide! –

+0

Vous aurez besoin de poster plus d'informations. Est-ce qu'il fait une demande au serveur? De plus, dans votre code, vous ne rendez jamais la grille. Est-ce que vous faites cela ailleurs? –

0

Même de cette manière cela fonctionne:

 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(); 

J'ai essayé dans tous les sens .. mais je ne sais pas ce que faire!

Questions connexes