当前位置: 首页 > news >正文

Ext-js 分页实现 (后台用Spring MVC)

 假定我们现在每页只显示25Item(产品条目),而现在数据库里面有33Item记录,所以应该分2页显示

 

显示结果:

 

第一页:


 

当你选择底部分分页栏的 向后箭头 或者直接在输入框里面输入页码,比如2的时候

他会自动翻到第二页


 

 

 

技术实现:

 

只需要改2个文件:

 

1.       B/E ,Spring控制器里面(对应这个例子是ItemController),加入如下代码,用于显示在指定区间里面的总记录的子集

 //the pagination feature by Charles 注解部分开始,主要做了以下事情:

(1)      分离从ext-js传来的参数,其中start是起始页,limit是每页最大显示多少记录数(我们采用25

(2)      参数正确性检查

(3)      计算实际该页要显示的记录数(考虑到尾页情况,所以这个记录数是 limittotal-start的较小值

(4)      创建一个Json对象返回,并且它包含3个信息【success ,total,data

Success还和以前一样,表示给Extjs前端判断的操作成功与否

Total: 表示总记录数,必须传给客户端,从而让框架帮计算出需要的页数

Data: 这个页面要显示的数据集合(总数据集的子集)

 


 

 

2.       F/EExtjs中用于显示页面的视图中(对应ItemPanel.js),加入以下信息,见粗体字显示部分:

1)创建一个bbar控件(bbar 表示bottom bar,表示底部分页控件)

2)设置一些参数用于显示控件的外观

3)设置doLoad方法,用于每次将新的设定的startlimit参数传递给B/ESpring控制器

 


 
  
  1. Ext.define('CA.view.item.ItemPanel', { 
  2.  
  3.      extend : 'Ext.Viewport'
  4.  
  5.      alias : 'widget.itempanel'
  6.  
  7.      layout : 'anchor'
  8.  
  9.      requires :      ['CA.view.item.ItemGridList'], 
  10.  
  11.      autoShow : true
  12.  
  13.      initComponent : function() { 
  14.  
  15.      console.log("creating the CA.view.item.ItemPanel panel"); 
  16.  
  17.   
  18.  
  19.   this.items = [ 
  20. header = Ext.create('CA.view.header.Header'), 
  21.  
  22. menuToolBar = Ext.create('CA.view.main.MenuToolBar'), 
  23.  
  24. itemGridList = Ext.create('CA.view.item.ItemGridList'), 
  25.  
  26.  bbar = new Ext.PagingToolbar({ //-======定义翻页控件 
  27.  
  28.      pageSize : 25, // 参数1:每页显示数 
  29.  
  30.      store : 'Item'// 数据源---非常重要 
  31.  
  32.      displayInfo : true
  33.  
  34.      beforePageText : '第'
  35.  
  36.      afterPageText : '/{0}页'
  37.  
  38.      firstText : '首页'
  39.  
  40.      prevText : '上一页'
  41.  
  42.      nextText : '下一页'
  43.  
  44.      lastText : '尾页'
  45.  
  46.      refreshText : '刷新'
  47.  
  48.      displayMsg : '显示第{0}条数据到{1}条数据,一共有{2}条'
  49.  
  50.      emptyMsg : '没有记录'
  51.  
  52.      doLoad : function(start) { 
  53.        //点下一页时,会把把新的start和limit传入后台 
  54.  
  55.        record_start = start; 
  56.  
  57.        var o = {}, pn = this.paramNames; 
  58.  
  59.        o[pn.start] = start; 
  60.  
  61.               
  62.        o[pn.limit] = this.pageSize; 
  63.  
  64.        store.load( {params:o}); 
  65.  
  66.                } 
  67.  
  68.          })]; 
  69.  
  70.   
  71.  
  72.       this.callParent(arguments); 
  73.  
  74.   
  75.  
  76.            } 
  77.  
  78.   
  79.  
  80.       }); 
  81.  
  82.   
  83.  
  84.   




本文转自 charles_wang888 51CTO博客,原文链接:http://blog.51cto.com/supercharles888/834224,如需转载请自行联系原作者

相关文章:

  • 网络知识===wireshark抓包数据分析(一)
  • 用VNC进行远程维护
  • org.springframework.jdbc.BadSqlGrammarException: Cause: java.sql.SQLException: Column count 异常
  • 如何在esxi环境中重启LUN。
  • Android应用程序发送广播(sendBroadcast)的过程分析(2)
  • 如何快速学习一个开源项目源码?
  • 表格花式效果
  • VSCode Vue文件格式化
  • 访问量统计
  • centos6.8 yum安装mysql 5.6
  • sqldatasource控件处理image类型数据
  • 快速构建Windows 8风格应用9-竖直视图
  • c++ 检查工具
  • 网管3.0时代的全面来临——Mocha BSM 先锋引领
  • 让KVM虚拟机支持console功能
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 「面试题」如何实现一个圣杯布局?
  • 【刷算法】求1+2+3+...+n
  • HTTP中GET与POST的区别 99%的错误认识
  • Intervention/image 图片处理扩展包的安装和使用
  • JavaScript函数式编程(一)
  • oschina
  • spring + angular 实现导出excel
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vagrant 添加本地 box 安装 laravel homestead
  • 阿里研究院入选中国企业智库系统影响力榜
  • 服务器之间,相同帐号,实现免密钥登录
  • 京东美团研发面经
  • 开源SQL-on-Hadoop系统一览
  • 使用API自动生成工具优化前端工作流
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 通过git安装npm私有模块
  • 再谈express与koa的对比
  • 1.Ext JS 建立web开发工程
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • $refs 、$nextTic、动态组件、name的使用
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • *2 echo、printf、mkdir命令的应用
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .net6使用Sejil可视化日志
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • @Data注解的作用
  • [Android 数据通信] android cmwap接入点
  • [Angular] 笔记 9:list/detail 页面以及@Output
  • [Asp.net mvc]国际化