分页的具体实现方法
2015-08-20 17:12
274 查看
实例结构图:
直接贴出源码:
1、index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>分页</title> <link href="static/css/index.css" rel="stylesheet" type="text/css" /> <script src="static/js/jquery-1.7.2.min.js" type="text/javascript"></script> <script src="static/js/index.js" type="text/javascript"></script> </head> <body> <div id="inifiniteListViewPage" style="display: block;"> <div class="paging"> <a href="javascript:void(0)" class="page-home mou-evt">首页</a> <a href="javascript:void(0)" class="page-prev">上一页</a> <span class="txt">第</span> <span class="page-input-wrap"><input type="text" class="page-input"></span> <span class="txt">/<b class="page-all">21</b>页 </span> <a href="javascript:void(0)" class="page-next mou-evt">下一页</a> <a href="javascript:void(0)" class="page-end mou-evt">末页</a> </div> </div> </body> </html>
2、index.css
@CHARSET "UTF-8"; .paging { text-align: center; margin: 0 auto; padding: 5px 0; position: relative; zoom: 1; font: 12px/1.5 tahoma, arial, "宋体"; color: #666 } .paging .mou-evt { cursor: pointer } .paging .disabled { cursor: default } .paging .disabled:hover { background: none; color: #545454 } .paging a,.paging span { display: inline-block; color: #545454; overflow: hidden; border: solid 1px #E7ECF0; height: 22px; line-height: 22px; width: 50px; margin: 0 2px; text-align: center } .paging a,.paging a:hover,.paging a:active { text-decoration: none; color: #666 } .paging .page-input-wrap { width: 32px; border: none; height: 24px } .paging .cur-page { height: 22px; line-height: 22px; width: 50px } .paging .txt { border: none; width: auto } .paging .txt b { font-weight: normal } .paging a:hover,.paging a.sel { background-color: #E9F1F7; color: #425FC8; text-decoration: none } .paging .page-input { width: 30px; height: 22px; _height: 21px; line-height: 22px; padding: 0; border: solid 1px #E7ECF0; text-align: center; margin: 0; outline: none }
3、index.js
var page = { event: {}, data:{}, initPageData:{} }; var page = { pageNo:1, pageTotal:0 }; $(function(){ page.event.onPageLoad(); }); page.event.onPageLoad = function (){ //绑定事件 page.event.bindingEvents(); //加载数据列表 page.data.loadDataList(); //给页面page和totalPage赋值 page.initPageData.appendHtml(); }; //绑定分页按钮事件 page.event.bindingEvents = function(){ $('.page-home').on("click",function(){ alert("首页"); }); $('.page-prev').on("click",function(){ alert("上一页"); }); $('.page-next').on("click",function(){ alert("下一页"); }); $('.page-end').on("click",function(){ alert("尾页"); }); $('.page-input').on("focusout",function(){ alert($(this).val()); }); }; //加载数据列表 page.data.loadDataList = function(){ $.ajax({ url: "/task_findAll.do", type: "post", data: {keyword:keyword,page:page.pageNo}, success: function (info) { var data = info; //给全局变量赋值 page.pageNo = data.page; page.pageTotal = data.totalPage; //表格数据 动态添加 start appendTableContent(data); //表格数据 动态添加 end } }); }; //表格数据 动态添加 function appendTableContent(data){ $("table tbody").html(""); var html = ''; for(var i = 0; i < data.rows.length; i++){ html +='<tr>'; html +='<td><div class="checker"><span><input type="checkbox" name="checkbox" value="'+data.rows[i].taskId+'" /></span></div></td>'; html +='<td><a href="javascript:void(0);" onclick="jumpToCreate('+data.rows[i].taskId+')" title="'+data.rows[i].taskNameTip+'">'+data.rows[i].taskName+'</a></td>'; if(data.rows[i].taskComment==""){ html +='<td><span class="nodata">(空)</span></td>'; }else{ html +='<td title="'+data.rows[i].taskCommentTip+'">'+data.rows[i].taskComment+'</td>'; } html +='<td>'+data.rows[i].taskType+'</td>'; html +='<td>'+data.rows[i].createTime+'</td>'; html +='<td>'+data.rows[i].userName+'</td>'; html +='<td>'+data.rows[i].taskStatus+'</td>'; if(data.rows[i].taskStatus=="正在运行"){ html +='<td><a href="javascript:void(0);" onclick="stop('+data.rows[i].taskId+')" title="停止">停止</a><a href="javascript:void(0);" style="text-decoration: none;color:#B9B7B7;text-decoration:line-through;" title="此任务正在运行不能删除操作">删除</a></td>'; }else{ html +='<td><a href="javascript:void(0);" onclick="start('+data.rows[i].taskId+');" title="开始">开始</a><a href="javascript:void(0);" onclick="del('+data.rows[i].taskId+');" title="删除">删除</a></td>'; } html +='</tr>'; } $("table tbody").append(html); } page.initPageData.appendHtml = function(){ $('.page-input').val(page.pageNo); $('.page-all').html(page.pageTotal); };
4、工具类PagerBean.java
package com.iflytek.pms.utils; import java.util.List; import com.alibaba.fastjson.JSONObject; /** * 分页工具类 PagerBean * * @param <T> */ public class PagerBean<T> { /** * 默认当前页 */ private int page; /** * 每页大小 */ private int pageSize; /** * 查询的结果总数 */ private long total; /** * 对象查询参数 */ private T param; /** * 每页的分页数据 */ private List<T> rows; /** * 总页数 */ private int totalPage; /** * 排序方式 升序还是降序 */ private String order; /** * 排序字段 */ private String sort; public String getOrder() { return order; } public void setOrder(String order) { this.order = order; } public String getSort() { return sort; } public void setSort(String sort) { this.sort = sort; } public int getPage() { return page; } public void setPage(int page) { this.page = page; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public long getTotal() { return total; } public void setTotal(long total) { this.total = total; } public List<T> getRows() { return rows; } public void setRows(List<T> rows) { this.rows = rows; } public int getTotalPage() { this.totalPage = (int) this.total % this.pageSize != 0 ? (int) this.total / this.pageSize + 1 : (int) this.total / this.pageSize; return totalPage; } public T getParam() { return param; } public void setParam(T param) { this.param = param; } @Override public String toString() { return JSONObject.toJSONString(this); } }
6、使用方法
public void findAll() { //封装查询条件 TaskInfo taskInfo = getTaskInfoCondition(); PagerBean<TaskInfo> pager = new PagerBean<TaskInfo>(); pager.setPage(page); pager.setPageSize(pageSize); pager.setOrder(order); pager.setSort(sort); // 加入查询条件 pager.setParam(taskInfo); PagerBean<TaskInfoDTO> pagerDto = taskDao.findTaskAll(pager, this.getData_Source()); log.info("任务列表:"+pagerDto.toString()); this.printToPage(pagerDto.toString()); }
相关文章推荐
- 在linux下如何判断是否已经安装某个软件?
- (欧拉回路)uva 10129 Play On Words
- Storm入门教程(二):构建Topology
- 如何快速掌握一门新技术/语言/框架?
- Linux 包管理工具 pip 使用详解
- Codelab for Android Design Support Library used in I/O Rewind Bangkok session
- Error: Target id 'android-5' is not valid. Use 'android list targets' to get the target ids.
- Android性能优化(一)
- unity, iOS下画面错乱解法
- 虚拟化--049 The Host IPMI System Event Log Status alarm 解决ESX主机报IPMI SEL错误
- 初步篇7分支结构程序体验项目3周工资发放
- 虚拟化--048 存储策略配置 for vCD
- oracle freelist 使用详解
- Oracle中如何插入特殊字符:& 和 ' (多种解决方案)
- 模式自由(Schema-free)和数据存储的非格式化趋势
- iOS开发-63】Unknown type name "CGRect",did you mean "Rect"?的解决方案
- 最大流问题
- 性能测试常用计数器
- oracle获取当前用户下所有的表名和表注释
- 虚拟化--047 用命令行给VCSC加域