Ext分页实现(前台与后台)
Ext分页实现(前台与后台)Spring+Mybatis
一、项目背景
关于Ext的分页网上有很多博客都有提到,但是作为Ext新手来说,并不能很容易的在自己的项目中得以应用。因为,大多数教程以及博客基本都是只写了前端的东西,而关于分页算法更多的应该是后台。并且大多数数据库的sql基本都是通用的,但是对于分页sql语句来讲,不同的数据库,又有着自己不同的语句。在本篇博文中,博主将详细介绍关于Ext前端与后台的实现。项目所采用的数据库是sql server,项目架构是Spring+Mybatis。
二、分页前台实现
在前台分页中客户端发送参数到服务器端,服务器需要解析并且做出响应,返回相应的数据。Ext.toolbar.Paging是专用的分页工具栏,绑定数据并提供自动分页控制。通过传递参数来控制分页。
var itemsPerPage= ; // 设置你想要的每页显示条数
var store = Ext.create('Ext.data.Store', {
id:'simpsonsStore',
autoLoad:{start:,limit:itemsPerPage},
fields:['name', 'email', 'phone'],
proxy: {
type: 'ajax',
url: 'pagingstore.js', // 请求URL加载数据
reader: {
type: 'json',
root: 'items',
totalProperty: 'total'
}
}
});
在上述代码中是属于Ext的分页的前端代码,其中有这样几个属性必须特别注意,autoLoad:{start:0,limit:itemsPerPage},,与数据有关的items,与分页有关的total,这些需要和我们的后台进行一一对应的关系。在实现后台时候,将会详细进行解释。
二、后台实现
在后台中,我们已经将Spring+Mybatis的架构搭建完成,并且在sql server数据库中有这样一张表(Company),表中包含了3个字段,CompId,CompName,CompNum。根据数据库完成主要的实体书写,XML文件书写,MappingDao。
接下来,为了进行分页,我们需要写一个Page类其主要代码如下:
package com.test.util;
public class Page {
private int start;
private int limit;
public int getStart() {
return start;
}
public void setStart(int start) {
this.start = start;
}
public int getLimit() {
return limit;
}
public void setLimit(int limit) {
this.limit = limit;
}
public Integer getPage(){
return (start/limit)+;
}
}
分页的sql语句,因为ext传递到前台的只有两个值,所以将sql语句如所示,其中关于传递整数应该使用${}方式。“>”是“>”。其中的参数是Page对象。
<!-- 分页算法 -->
<select id="findPage" parameterType="com.test.util.Page" resultType="com.entity.Company">
SELECT TOP ${limit} *FROM
(SELECT ROW_NUMBER() OVER (ORDER BY compId) AS RowNumber,* FROM Company) as A
WHERE RowNumber > ${limit}*(${page}-)
</select>
Controller代码
//前台ajax获取路径的url
@RequestMapping("/testList")
public void datalist(HttpServletRequest req,HttpServletResponse res) throws Exception{
res.setContentType("text/plain");
int start = Integer.parseInt(req.getParameter("start"));//从前台传递的值
int limit = Integer.parseInt(req.getParameter("limit"));
Page page = new Page();
page.setStart(start);
page.setLimit(limit);
List<Company> list = dao.findPage(page);
//数据总的记录数
int x = dao.findTotalNum();
JSONArray jsonArray = JSONArray.fromObject(list);
StringBuffer sb = new StringBuffer();
sb.append("{");
sb.append("total:" + x + ",");
sb.append("items:");
sb.append(jsonArray.toString());
sb.append("}");
AjaxResponse.sendResponse(req,res,sb);
}
在上述代码中,其中的total与items也与前台代码中的保持一致。这样Ext的分页也就完全实现了。
总结
关于Ext的分页,前端代码比较简单,更主要的是后台的逻辑,不同数据库的分页sql应该如何书写,以及参数如何传递接收等。其他后台语言的代码与此类似。
Ext分页实现(前台与后台)的更多相关文章
- Jquery EasyUI +Ajax +Json +一般处理程序 实现数据的前台与后台的交互 --- 善良公社项目
经过上一篇博客,本节主要是来看实现的功能是后台的数据通过json数据传过来,前台修改的数据再传回数据库之后页面再次更新table中的数据: 图示: 实例:前台的代码 <%--表格显示区--%&g ...
- MVC 前台向后台传输数据
今天,我们一起来学习下.MVC如何在前台给后台传输数据 (1)前台传输数据到后台 具体思路:前台拼凑json字符串,然后通过 get 或 post 方式,传递到后台 Action 方法中 我现在前台展 ...
- 由ASP.NET所谓前台调用后台、后台调用前台想到HTTP——实践篇(二)
在由ASP.NET所谓前台调用后台.后台调用前台想到HTTP——理论篇中描述了一下ASP.NET新手的三个问题及相关的HTTP协议内容,在由ASP.NET所谓前台调用后台.后台调用前台想到HTTP—— ...
- 由ASP.NET所谓前台调用后台、后台调用前台想到HTTP——理论篇
工作两年多了,我会经常尝试给公司小伙伴儿们解决一些问题,几个月下来我发现初入公司的小朋友最爱问的问题就三个 1. 我想前台调用后台的XXX方法怎么弄啊? 2. 我想后台调用前台的XXX JavaScr ...
- C#和JavaScript交互(asp.net前台和后台互调)总结 (转)
http://www.cnblogs.com/poleices/archive/2011/02/24/1963727.html C#代码与javaScript函数的相互调用: 1.如何在JavaScr ...
- shell下,进程的前台与后台运行
跟系统任务相关的几个命令:fg.bg.jobs.&.ctrl+z1. & 最经常被用到 这个用在一个命令的最后,可以把这个命令放到后台执行2. ctrl + z 可以将一个 ...
- [转] 在Asp.net前台和后台弹出提示框
一.在前台弹出提示框 1.点击"A"标记或者"控件按钮"弹出提示框 <asp:LinkButton ID="lbtnDel" runa ...
- android判断当前应用程序处于前台还是后台
/** *判断当前应用程序处于前台还是后台 * * @param context * @return */ public static boolean ...
- js前台与后台数据交互-前台调后台
转自:http://blog.csdn.net/wang379275614/article/details/17033981 网站是围绕数据库来编程的,以数据库中的数据为中心,通过后台来操作这些数 ...
随机推荐
- iOS绘制收益柱状图
项目需求,参考了其他绘图demo,自己绘制出来了,不过代码改得有点乱,添加了很多变量,时间关系没用太合适的命名,逻辑处理也没进行优化. 看看效果图(虚线区域都是画的,其他区域添加的都是控件),附上源码 ...
- Yii2.x 互斥锁Mutex-类图
- LinqToXml (一) Create Xml file By Dom /Linq
目前,在xml 应用编程领域比较流行的开发模型是W3C 提供的DOM(文档对象模型),在.net Framework 通过命名空间 System.Xml 对该技术提供了支持.随着Linq to XMl ...
- JQuery操作类数组的工具方法
JQuery学习之操作类数组的工具方法 在很多时候,JQuery的$()函数都返回一个类似数据的JQuery对象,例如$('div')将返回div里面的所有div元素包装的JQuery对象.在这中情况 ...
- canvas 制作flappy bird(像素小鸟)全流程
flappy bird制作全流程: 一.前言 像素小鸟这个简单的游戏于2014年在网络上爆红,游戏上线一段时间内appleStore上的下载量一度达到5000万次,风靡一时, 近年来移动web的普及为 ...
- Microsoft Dynamics CRM 解决数据大于5000时,页面上只能导出5000+数据。
页面显示: update [MSCRM_CONFIG].[dbo].[DeploymentProperties] set IntColumn=10000 --调整成10000+ 页面导出: 一.在 ...
- ArcGIS Engine开发之属性查询
属性查询即基于空间数据的属性数据的查询,通过用户提交SQL语言中的where语句定义的查询条件,对属性数据进行搜索,从而得到查询结果的操作. 相关的类与接口 与属性查询功能相关的类主要有QureyFi ...
- SharePoint如何将使列表不被爬网爬到。
有一个项目,没有对表单进行严格的权限管理,虽然用户在自己的首页只能看到属于的单子,但是在搜索的时候,所有人的单子都能被搜到,所以客户造成了困惑. 那么问题来了,怎么让列表或者文档库不被爬网爬到. 有两 ...
- Android DEX 基础
转载请标明出处:http://www.cnblogs.com/zhaoyanjun/p/5736305.html本文出自[赵彦军的博客] 1.什么是dex? 简单说就是优化后的android版.exe ...
- iOS字体加载三种方式
静态加载 动态加载 动态下载苹果提供的多种字体 其他 打印出当前所有可用的字体 检查某字体是否已经下载 这是一篇很简短的文章,介绍了 iOS 自定义字体加载的三种方式. 静态加载 这个可以说是最简单最 ...