获取当前页
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);
}
本文介绍如何使用ExtJS框架从pagingtoolbar和store中获取当前页和总页数的方法,包括直接调用getPageData获取pageCount及通过计算store.getTotalCount实现自定义方法。
639

被折叠的 条评论
为什么被折叠?



