ExtJs Grid分页时,默认情况下每页的序号都是从1起始的,这往往不符合我们的习惯。这里实现了序号的自动增加。
如:每页20条第一页从1开始,第二页从21条开始。
先定义一个全局变量如record_start = 0,这里记得赋初始值主要是考虑第一次加载。
在Ext.grid.ColumnModel内创建一个序号列rownumber
new Ext.grid.RowNumberer({
header: '序号',
40,
renderer: function(value, metadata, record, rowIndex){
return record_start + 1 + rowIndex;
}
})
40,
renderer: function(value, metadata, record, rowIndex){
return record_start + 1 + rowIndex;
}
})
然后在gridpanel内的PagingToolbar内添加doLoad事件
bbar: new Ext.PagingToolbar({
pageSize: 21,
store: ds,
displayInfo: true,
displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
emptyMsg: "没有记录",
doLoad: function(start){
record_start = start;
var o = {}, pn = this.paramNames;
o[pn.start] = start;
o[pn.limit] = this.pageSize;
o[pn.departName] = departName;
o[pn.industry] = industry;
o[pn.pointDepart] = pointDepart;
this.store.load({
params: o
})
}
})
store: ds,
displayInfo: true,
displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
emptyMsg: "没有记录",
doLoad: function(start){
record_start = start;
var o = {}, pn = this.paramNames;
o[pn.start] = start;
o[pn.limit] = this.pageSize;
o[pn.departName] = departName;
o[pn.industry] = industry;
o[pn.pointDepart] = pointDepart;
this.store.load({
params: o
})
}
})
这样就可以实现效果了。
如果如果需要查询重新加载数据的时候需要将
record_start = 0,否则查询结果中第一次加载的是查询前最后一次加载的序号。