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,如需转载请自行联系原作者

目录
相关文章
|
1月前
|
JavaScript 前端开发
JS如何处理后台时间
JS如何处理后台时间
|
2月前
|
JavaScript 前端开发
JavaScript分页功能
JavaScript分页功能
|
13天前
|
设计模式 前端开发 Java
步步深入SpringMvc DispatcherServlet源码掌握springmvc全流程原理
通过对 `DispatcherServlet`源码的深入剖析,我们了解了SpringMVC请求处理的全流程。`DispatcherServlet`作为前端控制器,负责请求的接收和分发,处理器映射和适配负责将请求分派到具体的处理器方法,视图解析器负责生成和渲染视图。理解这些核心组件及其交互原理,有助于开发者更好地使用和扩展SpringMVC框架。
24 4
|
1月前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
123 2
|
1月前
|
前端开发 JavaScript 关系型数据库
基于 Vue2.0 + Nest.js 全栈开发的后台应用
Vue2 Admin 是一个基于 Vue2 和 Ant Design Pro 开发的前端项目,配合 Nest.js 构建的后端,提供了一个完整的全栈后台应用解决方案。该项目支持动态国际化、用户权限管理、操作日志记录等功能,适合全栈开发者学习参考。线上预览地址:https://vue2.baiwumm.com/,用户名:Admin,密码:abc123456。
|
1月前
|
前端开发 JavaScript UED
"前端小技巧大揭秘:JS如何将后台时间戳秒变亲切小时前、分钟前,让用户秒懂,提升互动体验!"
【10月更文挑战第23天】在Web开发中,将后台返回的时间戳转换为“小时前”、“分钟前”、“刚刚”等友好的时间描述是常见需求。本文介绍如何用JavaScript实现这一功能,通过计算当前时间和时间戳的差值,返回相应的描述,提升用户体验。
43 1
|
2月前
|
JavaScript Java PHP
快速对比:Django、Spring Boot、Node.js 和 PHP
快速对比:Django、Spring Boot、Node.js 和 PHP
113 7
|
2月前
|
JSON 前端开发 Java
SSM:SpringMVC
本文介绍了SpringMVC的依赖配置、请求参数处理、注解开发、JSON处理、拦截器、文件上传下载以及相关注意事项。首先,需要在`pom.xml`中添加必要的依赖,包括Servlet、JSTL、Spring Web MVC等。接着,在`web.xml`中配置DispatcherServlet,并设置Spring MVC的相关配置,如组件扫描、默认Servlet处理器等。然后,通过`@RequestMapping`等注解处理请求参数,使用`@ResponseBody`返回JSON数据。此外,还介绍了如何创建和配置拦截器、文件上传下载的功能,并强调了JSP文件的放置位置,避免404错误。
|
2月前
|
前端开发 Java 应用服务中间件
【Spring】Spring MVC的项目准备和连接建立
【Spring】Spring MVC的项目准备和连接建立
65 2
|
3月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理