ExtJS之GridPanel分页原理解读

 

一般在JS代码中这样设定store.load({params:{start:0,limit:20}})

下面的代码中还有个pageSize

var bbar = new Ext.PagingToolbar({
      pageSize: 10,
      store:bookStore,
            displayInfo:true,
      displayMsg:'第{0}条到{1}条,共{2}条',
      emptyMsg:'没有记录'
  });

 那么pageSize和limit究竟有什么区别呢,其实limit后面的数据是页面刚加载上来显示的显示的当前页的查询条数,如果limit和pageSize值不同那么以后每次点击分页时显示的每页条数就是pageSize的值了,显然要保持一致了

 我们后台代码中一般select * from tab limit #pageNo,#pageSize;这样的语句

 那么我们就要知道#pageNo和JS中start的值的关系了,因为多次试验证明#pageSize就是JS上面的pageSize的值

 如果在后台监控的话你会发现每次JS的start和pageSize有这么几种关系

start  pageSize

  0      20            
 20     20
 40     20
 60     20
 80     20

经研究发现如果这样写逻辑代码就对了start=start/limit+1;为什么加一呢,因为SQL语句中limit 0,pageSiz和limit 1,pageSize效果一样
这样的话到页面第一页和第二页分页等于没有分,所以加一正好合适,搞定了

 

你可能感兴趣的:(sql,ext)