2015-01-12 3 views
1

Я хочу прочитать данные json в extjs, вот мой код ниже.Не удалось прочитать и установить данные Json с помощью extjs4

Что я делаю неправильно? Я довольно новичок в Extjs.

Я думаю, что я не мог получить значение json или не мог правильно записать его на панели.

Заранее спасибо.

Ext.require([ 'Ext.grid.*', 'Ext.data.*', 'Ext.dd.*' ]); 

    var urlGetName = '${ctx}/main/list'; 


    Ext.define('DataObject', { 
     extend : 'Ext.data.Model', 
     fields : [ 'name' ] 
    }); 


    var storeName = Ext.create('Ext.data.Store',{ 
     model:'DataObject', 
     autoLoad : false, 
     proxy : { 
      type : 'ajax', 
      actionMethods: { 
       read: 'GET' 
      }, 
       reader : { 
        type : 'json', 
        root: 'data', 
       }, 
       api : { 
        read: urlGetName 
       } 
     },listeners: { 
      load: function(store, records) { 
         dataa =store.getAt(0).get('data'); 
      } 
     } 
    }); 

    Ext.onReady(function() { 

     var firstGridStore = Ext.create('Ext.data.Store', { 
      model : 'DataObject', 
      data : dataa 
     }); 

     var columns = [ { 
      text : "Name", 
      flex : 1, 
      sortable : true, 
      dataIndex : 'name' 
     } ]; 

     // declare the source Grid 
     var firstGrid = Ext.create('Ext.grid.Panel', { 
      multiSelect : true, 
      viewConfig : { 
       plugins : { 
        ptype : 'gridviewdragdrop', 
        dragGroup : 'firstGridDDGroup', 
        dropGroup : 'secondGridDDGroup' 
       }, 
       listeners : { 
        drop : function(node, data, dropRec, dropPosition) { 
         var urlL = '${ctx}/main/list'; 
         var param = data; 
         postDataAsParamsINN({param:param},urlL,function(resp){ 
          var success=resp.success; 
          if(success){ 
           Ext.MessageBox.alert('succes', 'bravaa'); 
          }else{ 
           Ext.MessageBox.alert('error','eroross'); 
          } 
         }); 
        } 
       } 
      }, 
      store : firstGridStore, 
      columns : columns, 
      stripeRows : true, 
      title : 'First Grid', 
      margins : '0 2 0 0' 
     }); 
    }); 
+1

Что случилось? Я могу думать только о том, чтобы не загружать хранилище, поскольку autoLoad является ложным или этот сервер возвращает недопустимые или пустые данные. Что происходит с сервера? – Saki

ответ

2

Вы не должны использовать два магазина, чтобы заполнить их другим. Удалите FirstGridStore и используйте предопределенное удаленное хранилище:

// Model 
Ext.define('DataObject', { 
    extend : 'Ext.data.Model', 
    fields : [ 'name' ], 
    idProperty: 'name' 
}); 

// Store 
var storeName = Ext.create('Ext.data.Store',{ 
    model:'DataObject', 
    autoLoad: true, 
    queryMode: local, 
    proxy: { 
     type: 'ajax', 
     actionMethods: { 
      read: 'GET' 
     }, 
     reader: { 
      type : 'json', 
      root: 'data', 
     }, 
     api: { 
      read: urlGetName 
     } 
    } 
}); 

// Grid 
var columns = [{ 
    text : "Name", 
    flex : 1, 
    sortable : true, 
    dataIndex : 'name' 
}]; 

     // declare the source Grid 
var firstGrid = Ext.create('Ext.grid.Panel', { 
    multiSelect : true, 
    viewConfig : { 
     plugins : { 
        ptype : 'gridviewdragdrop', 
        dragGroup : 'firstGridDDGroup', 
        dropGroup : 'secondGridDDGroup' 
       }, 
       listeners : { 
        drop : function(node, data, dropRec, dropPosition) { 
         var urlL = '${ctx}/main/list'; 
         var param = data; 
         postDataAsParamsINN({param:param},urlL,function(resp){ 
          var success=resp.success; 
          if(success){ 
           Ext.MessageBox.alert('succes', 'bravaa'); 
          }else{ 
           Ext.MessageBox.alert('error','eroross'); 
          } 
         }); 
        } 
       } 
      }, 
      store : storeName, // defined store 
      columns : columns, 
      stripeRows : true, 
      title : 'First Grid', 
      margins : '0 2 0 0' 
     }); 
    }); 
+0

«Реальная» проблема была просто «autoLoad», которой присваивался false. Однако использование одного магазина для загрузки второго магазина не очень полезно ... – MatRt

Смежные вопросы