2014-09-19 2 views
0

Pagination не работает для моей сетки. Может кто-нибудь, пожалуйста, дайте мне знать, почему. Я использую статические данные, которые получают путем чтения xml с контроллера. Я хочу отображать 10 записей на странице.Экземпляр сетки Extjs 5.0 со статическими данными

model.js

Ext.define('Mymodel.model.settingModel', { 
    extend: 'Ext.data.Model' 
});  

Store.js

Ext.define('Mymodel.store.settingStore', { 
    extend: 'Ext.data.Store', 
    requires:['Mymodel.model.settingModel'], 
    model: 'Mymodel.model.settingModel', 
    pageSize:10, 
    lastOptions: {params: {start: 0, limit: 10}} 
}); 

View.js

Ext.define('Mymodel.view.graphPanel', { 
    extend: 'Ext.grid.Panel', 
    layout:'border', 
    alias: 'widget.graphPanel', 
    name:'graphPanel', 
    title: 'Tests', 
    store: 'Mymodel.store.settingStore', 
    pageSize:10, 
    dockedItems: [{ 
     xtype: 'pagingtoolbar', 
     store: 'Mymodel.store.settingStore', // same store GridPanel is using 
     dock: 'bottom', 
     pageSize: 10, 
     displayInfo: true 
    }] 
}); 

Controller.js

Ext.define('Mymodel.controller.myController', { 
extend:'Ext.app.Controller', 
models:['Mymodel.model.settingModel'], 
stores:['Mymodel.store.settingStore'], 
init: function() { 
Ext.Ajax.request({ 
      url: 'Sample.xml', 
      success: function(response, opts) { 
       var txt = response.responseText; 
       parser=new DOMParser(); 
       xmlDoc=parser.parseFromString(txt,"text/xml"); 

       // I now build the modelField Array, Data Array and column array based on the xml  
       got and give it to the stores. 

       var store = Ext.data.StoreManager.lookup('Mymodel.store.settingStore'); 
       store.setFields(modelfieldArr); 
       store.setData(completeDataArr); 
       store.setPageSize(10); 
       store.load({ 
        params: { 
        start: 0, 
        limit: 10 
       } 
       }); 

       var gridview = Ext.ComponentQuery.query('graphPanel')[0]; 
       gridview.reconfigure(store,columnarr); 
      } 
     }); 

    } 
    }); 

ответ

0

Вы должны установить прокси-сервер memory и установить enablePaging: true.

Ext.define('Mymodel.store.settingStore', { 
    extend: 'Ext.data.Store', 
    config: { 
     proxy: { 
      type: 'memory', 
      enablePaging: true, 
      reader: 'array' 
     } 
    }, 
    requires: ['Mymodel.model.settingModel'], 
    model: 'Mymodel.model.settingModel', 
    pageSize: 10 
}); 

Для загрузки данных используйте этот код:

store.getProxy().setData(data); 
store.read(); 

Пример: http://jsfiddle.net/z2x074n0/3/

+0

У меня есть вопрос. Если я хочу добиться того же, добавив столбец и его данные динамически, используя grid.reconfigure(), как это было сделано выше, как это сделать? – ASR

+0

Я имел в виду, что столбцы сетки и поля модели должны добавляться динамически с использованием сетки. reconfigure(), как можно выполнить пейджинг – ASR

+0

Все работает отлично: http://jsfiddle.net/w4fh08n9/ – Krzysztof

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