2017-12-20 11 views
1

、JSONは、100件のレコードを受け取ったときに オフラインプロキシが唯一の50件のレコードを追加するには、ここに店に追加私の単純なコード response.responseText [私のAjaxの応答]で、それはreocordsが煎茶オフラインプロキシ

を設定して返します。
  var data = Ext.decode(response.responseText); 
       for (var c=0; c < data.length; c++){ 
        console.log(c); 
        var itemrecord = Ext.create('Inertia.model.InstallingCompany'); 
        itemrecord.set(data[c]); 
        Ext.getStore('InstallingCompanies-offline').add(itemrecord); 
       } 
      console.log(c); 
      console.log(Ext.getStore('InstallingCompanies-offline').data.length); 

答えて

1

この場合、直接store.loadData()メソッドstoreを使用することができます。このFIDDLE

、私はgridpanelExt.data.Storeを使用してデモを作成しています。私はこのFIDDLEがあなたを助けたり、あなたの要件を達成するためにあなたを導くことを願っています。

コードスニペット

Ext.define('ForumThread', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     'title', 'forumtitle', 'forumid', 'username', { 
      name: 'replycount', 
      type: 'int' 
     }, { 
      name: 'lastpost', 
      mapping: 'lastpost', 
      type: 'date', 
      dateFormat: 'timestamp' 
     }, 
     'lastposter', 'excerpt', 'threadid' 
    ], 
    idProperty: 'threadid' 
}); 

Ext.create('Ext.data.Store', { 
    storeId: 'topicsStore', 
    model: 'ForumThread' 
}); 

function renderTopic(value, p, record) { 
    return Ext.String.format(
     '<a href="http://sencha.com/forum/showthread.php?t={2}" target="_blank">{0}</a>', 
     value, 
     record.data.forumtitle, 
     record.getId(), 
     record.data.forumid 
    ); 
} 

Ext.create('Ext.grid.Panel', { 
    height: window.innerHeight, 
    title: 'Example of Store loadData() with GRID and Ajax Request', 
    renderTo: Ext.getBody(), 
    store: Ext.data.StoreManager.lookup('topicsStore'), 
    loadMask: true, 
    columns: [{ 
     xtype: 'rownumberer', 
     width: 35, 
     sortable: false 
    }, { 
     tdCls: 'x-grid-cell-topic', 
     text: "Topic", 
     dataIndex: 'title', 
     flex: 1, 
     renderer: renderTopic, 
     sortable: true, 
     groupable: false, 
     cellWrap: true 
    }, { 
     text: "Author", 
     dataIndex: 'username', 
     flex: 0.5, 
     sortable: true, 
     groupable: false 
    }, { 
     text: "Replies", 
     dataIndex: 'replycount', 
     align: 'center', 
     width: 90, 
     sortable: false 
    }, { 
     id: 'last', 
     text: "Last Post", 
     dataIndex: 'lastpost', 
     flex: 0.5, 
     renderer: Ext.util.Format.dateRenderer('n/j/Y g:i A'), 
     sortable: true, 
     groupable: false 
    }], 
    listeners: { 
     afterrender: function (cmp) { 
      var store = Ext.data.StoreManager.lookup('topicsStore'), 
       store1; 
      cmp.getEl().mask('Please wait..!'); 
      Ext.Ajax.request({ 
       url: 'topics.json', 
       success: function (data) { 
        var response = Ext.decode(data.responseText); 
        store.loadData(response.topics); 
        cmp.getEl().unmask(); 

        //Add data using store.add() method in Store 
        store1 = Ext.create('Ext.data.Store', { 
         model: 'ForumThread' 
        }); 
        response.topics.forEach(function (item) { 
         store1.add(item); 
        }) 
        console.log(`total count of store1 data is ${store1.getCount()}`); 
       } 
      }); 
     } 
    } 
}); 
関連する問題