+ -
当前位置:首页 → 问答吧 → 关于ext的分页问题

关于ext的分页问题

时间:2011-09-04

来源:互联网

项目中一张表数据太多 不能每次翻页都去查询所以我希望重写store的load方法然后每1000条去后台查一次,页面每次显示20条一下是代码
Ext.data.PageStore = Ext.extend(Ext.data.Store,{
load:function (o){
if(start%1000==0){
Ext.data.PageStore.superclass.load.call(this,o);
}else{
Ext.data.PageStore.superclass.removeAll.call(this);
  var start = o['params']['start']%1000;
  var limit = (o['params']['limit']+1)%1000;
  //此处的data是页面自己创建的一个数据集吧每次从后台取出的1000条数据存进去
var temp = data.slice(start,[limit]);
Ext.data.PageStore.superclass.add.call(this,temp);
}
}
});
翻页工具用的是Ext.PagingToolBar
问题是我在翻页的时候根本下面的 “第 A页 共XXX页 第B条-第C条 共X条”中的A根本不变 代码是执行了 但是页数没变求高人解答。给个解决方案。

作者: demon3211   发布时间: 2011-09-04

正在做ext 
拷个给你参考

var pagesize_combo = new Ext.form.ComboBox({
name : 'pagesize',
hiddenName : 'pagesize',
typeAhead : true,
triggerAction : 'all',
lazyRender : true,
mode : 'local',
store : new Ext.data.ArrayStore({
fields : ['value', 'text'],
data : [[10, '10条/页'], [20, '20条/页'],
[50, '50条/页'], [100, '100条/页'],
[250, '250条/页'], [500, '500条/页']]
}),
valueField : 'value',
displayField : 'text',
value : '20',
editable : false,
width : 85
});
var number = parseInt(pagesize_combo.getValue());
pagesize_combo.on("select", function(comboBox) {
bbar.pageSize = parseInt(comboBox.getValue());
number = parseInt(comboBox.getValue());
store.reload({
params : {
start : 0,
limit : bbar.pageSize
}
});
});
  var bbar = new Ext.PagingToolbar({
pageSize : number,
store : store,
displayInfo : true,
displayMsg : '显示{0}条到{1}条,共{2}条',
plugins : new Ext.ux.ProgressBarPager(), // 分页进度条
emptyMsg : "没有符合条件的记录",
items : ['-', '  ', pagesize_combo]
});

作者: zuoguoyao   发布时间: 2011-09-05