Сетка пагинации в EXT JS 4.2
Я работаю над приложением EXT JS и мне нужно реализовать нумерацию страниц. Таким образом, у меня есть форма, которая имеет около 10-15 критериев поиска, и пользователь может искать на основе любого из критериев. Результат поиска может содержать более 100 записей, которые я хочу отображать на страницах (20 записей на странице). Я использую Sencha Architect для разработки кода. Вот как выглядит мой магазин:
Ext.define('EmpMain.store.EmpSearchStore', {
extend: 'Ext.data.Store',
requires: [
'EmpMain.model.EmpSearcModel',
'Ext.data.proxy.JsonP',
'Ext.data.reader.Json'
],
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
model: 'EmpMain.model.EmpSearcModel',
storeId: 'EmpSearchStore',
pageSize: 4,
proxy: {
type: 'jsonp',
reader: {
type: 'json',
root: 'data',
totalProperty: 'totalRecords'
}
}
}, cfg)]);
}
});
Вот мой код обработчика для кнопки поиска:-
var values = this.up('#id_EmpSearchForm').getValues();
//console.log(Ext.JSON.encode(values));
var EmpsearchStore=Ext.getStore('EmpSearchStore'),
EmpMemoryStore=Ext.getStore('EmpMemoryStore'),
records=[];
this.up('#id_EmpSearch').setLoading(true);
console.log("No of records in store before"+EmpsearchStore.getCount());
.request({
url: "http://localhost:19456",
method:"POST",
params : {
EmpData: Ext.JSON.encode(values)
},
scope : this,
reader: {
type: 'json',
root: 'data',
totalProperty: 'totalRecords'
},
//method to call when the request is successful
success:function(response){
response = Ext.decode(response.responseText);
console.log("Total Records"+response.totalRecords);
if(response.success){
//Ext.MessageBox.alert('Success', response.message);
this.up('#id_EmpSearch').setLoading(false);
EmpsearchStore.loadData(response.data);
console.log("No of records in store after"+EmpsearchStore.getCount());
//copy data into memory store
console.log("No of records in Memory store after"+EmpMemoryStore.getCount());
}
else {
Ext.MessageBox.alert('Alert!!', response.message);
this.up('#id_EmpSearch').setLoading(false);
}
},
//method to call when the request is a failure
failure:function(form, result){
Ext.MessageBox.alert('Communication Error', 'Error loading data');
this.up('#id_EmpSearch').setLoading(false);
}
});
Почему-то нумерация страниц не работает. Может кто-нибудь помочь мне здесь, пожалуйста? Что я делаю неправильно? Вот мой ответ JSOn
{
"data": [{
"Emp_ID": "1000451",
"TPC_COND_ID": "35816",
"TPC_CONDUIT_NAME": "TPC_JMS_ETM_ALL",
"TPC_CHAN_ID": "35818",
"TPC_CHANNEL_NAME": "TPC_JMS_ETM204_ALL",
"ABC_SEND_ID": "65696",
"ABC_SENDER": "0279639200002",
},
{
"Emp_ID": "1002370",
"TPC_COND_ID": "11098",
"TPC_CONDUIT_NAME": "MQ_02",
"TPC_CHAN_ID": "13148",
"TPC_CHANNEL_NAME": "MQ_INBOUND_PASS_THRU",
"ABC_SEND_ID": "39300",
"ABC_SENDER": "FLNAHVL",
}],
"success": true,
"totalRecords": 50
}
Вот мой Grid и конфигурация панели инструментов
xtype: 'gridpanel',
autoRender: true,
height: 500,
id: 'id_EmpResultGrid',
autoScroll: true,
header: false,
title: 'Emp Search Results',
scroll: 'vertical',
store: 'EmpSearchStore',
viewConfig: {
preserveScrollOnRefresh: true,
enableTextSelection: true
},
dockedItems: [
{
xtype: 'pagingtoolbar',
dock: 'bottom',
width: 360,
displayInfo: true,
store: 'TPPSearchStore'
}
]