ExtJs Grid分页时,默认情况下每页的序号都是从1起始的,这往往不符合我们的习惯。这里实现了序号的自动增加。
如:每页20条第一页从1开始,第二页从21条开始。
先定义一个全局变量如record_start = 0,这里记得赋初始值主要是考虑第一次加载。
在Ext.grid.ColumnModel内创建一个序号列rownumber
new Ext.grid.RowNumberer({
header: '序号', width: 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 }) } })
这样就可以实现效果了。
如果如果需要查询重新加载数据的时候需要将
record_start = 0,否则查询结果中第一次加载的是查询前最后一次加载的序号。