0
我使用ExtJs 4版本,我創建了客戶端分頁。當我在第二頁中搜索網格時,它不是從網格的第一頁搜索商店。這是view.jsExtjs分頁格沒有過濾沒有存儲的第一頁,loadPage(1)
{
xtype: 'textfield',
id: 'detailsSearchBox',
selectOnFocus: true,
margin:'0 0 0 10',
mode: 'remote',
listeners: {
change :function(field, newValue, oldValue, options){
Store.clearFilter(true);
var grid = Ext.getCmp('Grid');
var total = localStorage.getItem('total');
var matcher = new RegExp(Ext.String.escapeRegex(newValue), "i");
console.log('grid.store.getCurrentPage ', grid.store.currentPage);
var tb = Ext.getCmp('pagingtool');
console.log('window.data ', window.data);
records = [];
Ext.each(tempClusterData, function(record) {
for (var i = 0; i < grid.columns.length; i++) {
if (grid.omitColumns) {
if (grid.omitColumns.indexOf(grid.columns[i].dataIndex) === -1) {
if (matcher.test(record[grid.columns[i].dataIndex]){
if (!grid.filterHidden && grid.columns[i].isHidden()) {
continue;
} else {
records.push(record);
break;
};
};
};
} else {
if (matcher.test(record[grid.columns[i].dataIndex]) {
//console.log('else - if**** ', record[grid.columns[i].dataIndex], matcher);
if (!grid.filterHidden && grid.columns[i].isHidden()) {
continue;
} else {
records.push(record);
window.data= records;
break;
};
};
};
}
});
data = window.data;
data.length=window.data.length;
grid.store.load({ params: { query: matcher, start: 0, limit: window.total } });
},
}
}
和我store.js是
var fetchedData = function(){
this.data = null;
this.total = 0;
}
var data = JSON.parse(localStorage.getItem('data'));
var total = localStorage.getItem('total');
function createPagination(page, count) {
var tmp = [];
var startIndex = (page * count) - count;
if(startIndex <= data.length-1)
{
var endIndex = startIndex + (count -1);
if(endIndex > data.length -1)
endIndex = data.length -1;
for(;startIndex <= endIndex;startIndex++)
{
tmp.push([data[startIndex].Id, data[startIndex].Name, data[startIndex].start, data[startIndex].end, data[startIndex].status, data[startIndex].year);
}
}
return data;
}
var store = Ext.define('EMS.store.store', {
extend: 'Ext.data.Store',
alias: 'store.ctore',
model: 'EMS.model.cModel',
requires: [
'EMS.model.cModel'
],
//autoLoad: true,
pageSize : 3,
proxy: {
type: 'memory',
reader: {
type: 'array',
root: 'data',
totalProperty : 'total'
}
},
listeners : {
beforeload : function(store, operation, eOpts){
var page = operation.page;
var limit = operation.limit;
fetchedData.data = createPagination(page, limit);
fetchedData.total = total;
store.proxy.data = fetchedData;
}
}
});
'winndow.data'和'window.total'是商店的變量 – Learner