获取当前页
store.currentPage
总页数
一.从pagingtoolbar里获得
getPageData在api里看不到,但是在源码里有,可以调用
pagingtoolbar.getPageData().pageCount
不通过id得到pagingtoolbar(怕id多了冲突)(用bbar声明的也可以取到)
grid.getDockedItems('toolbar[dock="bottom"]')[0].getPageData().pageCount
pagingtoolbar#getPageData源码
// @private getPageData : function(){ var store = this.store, totalCount = store.getTotalCount(); return { total : totalCount, currentPage : store.currentPage, pageCount: Math.ceil(totalCount / store.pageSize), fromRecord: ((store.currentPage - 1) * store.pageSize) + 1, toRecord: Math.min(store.currentPage * store.pageSize, totalCount) }; },
二.从store里获得,需要计算
function getStoreTotalPage(store){ var totalCount = store.getTotalCount(); var pageSize = store.pageSize; //default: 25 //var totalPage = (totalCount + pageSize -1) / pageSize; //js的不是整除 var totalPage = Math.ceil(totalCount/pageSize); return totalPage; }
这个可以给store加扩展方法
1.Ext似乎不允许这样扩展 Ext.data.Store.prototype.getTotalPage = function(){ }
2.Ext的扩展会产生一个新的类,不是我要的,
3.可以改源码,把方法加上,那还得压缩,还不如像上面单定义一个方法简单,
//查找Ext.define('Ext.data.Store',加入方法 getTotalPage: function(){ var totalCount = this.getTotalCount(); var pageSize = this.pageSize; //default: 25 var totalPage = Math.ceil(totalCount/pageSize); return totalPage; },
是否是最后一页
1.当前页是否是最后一页
store.currentPage == grid.getDockedItems('toolbar[dock="bottom"]')[0].getPageData().pageCount
store.currentPage == getStoreTotalPage(store)
2.当前页的最后一条和总记录做对比
先判断store.last()是不是个对象
if(!(store.last()) || store.indexOfTotal(store.last()) == store.getTotalCount()-1){ alert(true); }