2017-10-19 6 views
0

J'ai grille avec filtre et sur le filtre je veux afficher une liste d'éléments. En focalisant l'option de filtrage, je devrais voir une liste d'éléments avec des cases à cocher et quand je clique sur la case à cocher, elle devrait envoyer les paramètres. J'ai atteint ceci par chargement des données locales et je veux la même chose en chargeant des données à distance comment puis-je y parvenir. { dataIndex: 'adjustmentTypeDescription', texte: 'Réglage
Type', stateid: 'adjustmentgrid_adjustmentTypeDescription', filtre: {type : 'liste', labelField: 'nom', dataIndex: 'adjustmentTypeId',comment retourner les données comme une forme de tableau de stockage à distance extjs

 store: Ext.create('Ext.data.ArrayStore', { 
      fields: [{ 
       name: 'id', 
       type: 'int' 
      }, { 
       name: 'name', 
       type: 'string' 
      }], 
      data: [ 
       [2, 'AA'], 
       [13, 'AFF'], 
       [11, 'DDD'], 
       [15, 'Dd'], 
       [5, 'Fdsdt'], 
       [6, 'Ide'] 
       [10, 'Return/Reject'] 
      ] 
     })} 

Maintenant, je veux charger ces données du service. Je essayé de cette façon:

  store: Ext.create('Ext.data.ArrayStore', { 
      autoLoad: false, 
      model: 'ModelName', 
         /*fields: [{ 
           name: 'adjustmentTypeId', 
           type: 'int' 
          }, { 
           name: 'description', 
           type: 'string' 
          }],*/ 
         proxy: { 
          type: 'ajax', 
          url: 'servicurl', 
          timeout:120000, 
          reader: { 
           type: 'array', 
           // rootProperty: 'data', 
           rootProperty:function(data){ 
            debugger; 
            return data; 
            debugger; 
            //console.log(bb); 
           } 
          } 
         }/*, 
         listeners: { 
          load: function(store, records, successful, 
         operation, eOpts){ 
           debugger; 
           var data = []; 
           for(var i = 0; i< 1; i++){ 

        //data.push(records[i].data.description); 
            var vare = new Array(); 
            vare[0]= records[i].data.description; 
            data.push(vare); 

           } 

           store.loadData(data); 
           console.log(data); 
          } 
         }*/ 
      }) 

mais ne fonctionnait pas comment puis-je parvenir en faisant un appel de service et le chargement des données à distance.

Répondre

0
  1. Set autoLoad: true

  2. Retirez l'objet de configuration reader. Puisque vous utilisez un ArrayStore, ce n'est pas nécessaire. Et les données du tableau sont positionnelles, donc rootProperty n'est pas utilisé.

  3. Vérifiez que vous avez défini correctement les zones du modèle.

Cela devrait fonctionner.

+0

Mon erreur en fait le magasin ne devrait pas être ArrayStore parce que les données du serveur sont au format json: – Sweety

+0

Je l'ai changé pour json reader et je l'ai eu https://fiddle.sencha.com/#view/editor&fiddle/28ko – Sweety