基于Jquery实现表格动态分页实现代码


Posted in Javascript onJune 21, 2011

当页面点击分页图标时,程序会自动去后台获取对应页数的记录。
关键代码如下:
需要引入的css和js文件有:

<link rel="stylesheet" type="text/css" href="<%=basePath %>css/theme/default/css/jpage.css"></link> 
<link ID="skin" rel="stylesheet" type="text/css" href="<%=basePath %>css/config.css" /> 
<script language="javascript" type="text/javascript" src="<%=basePath %>js/jquery.js"></script>

其中jsp页面代码如下:
<script language="jscript" type="text/javascript"> 
var pageIndex = 1; //当前页数 
$(function(){ 
GetPageCount();//获取分页数量以及总的记录条数 
$("#load").hide();//隐藏loading提示 
$("#template").hide();//隐藏模板 
ChangeState(0,1);//设置翻页按钮的初始状态 
bind();//绑定第一页的数据 
//第一页按钮click事件 
$("#first").click(function(){ 
pageIndex = 1; 
ChangeState(0,1); 
bind(); 
}); 
//上一页按钮click事件 
$("#previous").click(function(){ 
pageIndex -= 1; 
ChangeState(-1,1); 
if(pageIndex <= 1){ 
pageIndex = 1; 
ChangeState(0,-1); 
} 
bind(); 
}); 
//下一页按钮click事件 
$("#next").click(function(){ 
pageIndex += 1; 
ChangeState(1,-1); 
if(pageIndex>=pageCount) 
{ 
pageIndex = pageCount; 
ChangeState(-1,0); 
} 
bind(pageIndex); 
}); 
//最后一页按钮click事件 
$("#last").click(function(){ 
pageIndex = pageCount; 
ChangeState(1,0); 
bind(pageIndex); 
}); 
//每页显示记录条数select事件 
$("#pageSize").change(function(){ 
bind(); 
}) 
}); 
//AJAX方法取得数据并显示到页面上 
function bind(){ 
$("#load").show(); 
var pageSize = $("#pageSize").val(); 
$.ajax({ 
type: "get",//使用get方法访问后台 
dataType: "json",//返回json格式的数据 
url: "<%=basePath%>actionSmUser.do?method=listUser2",//要访问的后台地址 
data: "pageIndex=" + pageIndex+"&pageSize="+pageSize,//要发送的数据 
complete : function(msg){//msg为返回的数据,在这里做数据绑定 
$("[id=ready]").remove(); 
var data = eval("("+msg.responseText+")"); 
$.each(data, function(i, n){ 
var row = $("#template").clone(); 
row.find("#userId").text(n.userId); 
row.find("#userName").text(n.userName); 
row.find("#depId").text(n.depId); 
row.find("#createTime").text(n.createTime); 
if(n.createTime !== undefined) row.find("#createTime").text(n.createTime); 
row.find("#creator").text(n.creator); 
row.find("#menusId").text(n.menusId); 
row.find("#isValid").text(n.isValid); 
row.attr("id","ready");//改变绑定好数据的行的id 
row.appendTo("#datas");//添加到模板的容器中 
}); 
$("[id=ready]").show(); 
SetPageInfo(); 
} 
}); 
} 
function ChangeDate(date){ 
return date.replace("-","/").replace("-","/"); 
} 
//设置第几页/共几页的信息 
function SetPageInfo(){ 
var pageCount = $("#pageCount").val(); 
var totalCount = $("#totalCount").val(); 
var pageSize = $("#pageSize").val(); 
$("#pageinfo").html(" 第<input class='default_pgCurrentPage' id='pageIndex' type='text' value='"+pageIndex+ 
"' style='width: 30px' /> 页" + "/" +"共 "+pageCount+"页"+ 
" 检索到 "+totalCount+"条记录,显示第 "+(pageIndex*pageSize-pageSize)+" 条 - 第 "+(pageIndex*pageSize)+" 条记录"); 
} 
//AJAX方法取得分页总数 
function GetPageCount(){ 
var pageSize = $("#pageSize").val(); 
$.ajax({ 
type: "get", 
dataType: "text", 
url: "<%=basePath%>actionSmUser.do?method=getPageCount", 
data: "pageSize="+pageSize , 
async: false, 
success: function(msg){ 
var data = eval("("+msg+")"); 
$("#pageCount").val(data[0].pageCount); 
$("#totalCount").val(data[0].totalCount); 
} 
}); 
} 
//改变翻页按钮状态 
function ChangeState(state1,state2){ 
$("#first").attr("class","default_pgFirst default_pgBtn"); 
$("#previous").attr("class","default_pgPrev default_pgBtn"); 
$("#next").attr("class","default_pgNext default_pgBtn"); 
$("#last").attr("class","default_pgLast default_pgBtn"); 
if(state1 == 1) { 
document.getElementById("first").disabled = ""; 
document.getElementById("previous").disabled = ""; 
}else if(state1 == 0){ 
document.getElementById("first").disabled = "disabled"; 
document.getElementById("previous").disabled = "disabled"; 
$("#first").attr("class","default_pgFirstDisabled default_pgBtn"); 
$("#previous").attr("class","default_pgPrevDisabled default_pgBtn"); 
}if(state2 == 1){ 
document.getElementById("next").disabled = ""; 
document.getElementById("last").disabled = ""; 
}else if(state2 == 0){ 
document.getElementById("next").disabled = "disabled"; 
document.getElementById("last").disabled = "disabled"; 
$("#next").attr("class","default_pgNextDisabled default_pgBtn"); 
$("#last").attr("class","default_pgLastDisabled default_pgBtn"); 
} 
} 
</script>

html页面代码如下:
<body> 
<div> 
<div> 
<br /> 
<table id="datas" align="center" class="listtable" width="100%" bgcolor="#CCCCCC" cellSpacing="1" cellpadding="1" style="margin-top:5px;"> 
<tr class="fixheader"> 
<th width="14%"> 
用户ID</th> 
<th width="14%"> 
用户名称</th> 
<th width="14%"> 
所在科室</th> 
<th width="14%"> 
创建时间</th> 
<th width="14%"> 
创建人</th> 
<th width="14%"> 
菜单集名称</th> 
<th width="14%"> 
是否有效</th> 
</tr> 
<tr id="template" height="22px" bgcolor="#F9FDFF" onmouseover="javascript:this.style.backgroundColor='#FFFFCC'; return true;" onMouseOut="javascript:this.style.backgroundColor='#F9FDFF'; return true;"> 
<td id="userId" class="tdc"> 
</td> 
<td id="userName" class="tdc"> 
</td> 
<td id="depId" class="tdc"> 
</td> 
<td id="createTime" class="tdc"> 
</td> 
<td id="creator" class="tdc"> 
</td> 
<td id="menusId" class="tdc"> 
</td> 
<td id="isValid" class="tdc"> 
</td> 
</tr> 
</table> 
</div> 
<div id="load" style="left: 0px; position: absolute; top: 0px; background-color: red"> 
LOADING.... 
</div> 
<div class="default_pgContainer" > 
<div class="default_container"> 
<div class="default_pgPanel" id="skinDiv"> 
<table class="default_pgToolbar"> 
<tr> 
<td class="black_pgCurrentPage"> 
<select id="pageSize" name="pageSize"> 
<option selected="selected" value="10">10</option> 
<option value="20">20</option> 
<option value="30">30</option> 
</select> 
</td> 
<td> 
<div id="first" class="default_pgFirst default_pgBtn" /> 
</td> 
<td> 
<div id="previous" class="default_pgPrev default_pgBtn" /> 
</td> 
<td class="default_separator"> 
</td> 
<td> 
<div id="next" class="default_pgNext default_pgBtn" /> 
</td> 
<td> 
<div id="last" class="default_pgLast default_pgBtn" /> 
</td> 
<td class="default_separator"> 
</td> 
<td> 
<span id="pageinfo"></span> 
</td> 
</tr> 
</table> 
</div> 
</div> 
</div> 
</div> 
<div id="test"></div> 
<input type="hidden" id="pageCount" style="width: 45px" /> 
<input type="hidden" id="totalCount" style="width: 45px" /> 
</body>

后台action中代码如下:
//分页获取用户信息 
public void listUser2(ActionMapping mapping, ActionForm form, 
HttpServletRequest request, HttpServletResponse response){ 
RequestTool tool = new RequestTool(request); 
Integer pageSize = tool.getIntParameter("pageSize"); 
Integer pageIndex = tool.getIntParameter("pageIndex"); 
ResultPage res = serviceSmUserImpl.findAllSmUsers(pageIndex, pageSize); 
List<SmUser> smUserList = (List<SmUser>)res.getResult(); 
JSONArray array = new JSONArray(); 
JSONObject object ; 
for(SmUser user:smUserList){ 
object = new JSONObject(); 
object.put("userId", user.getUserId()); 
object.put("userName",user.getUserName()); 
object.put("depId", user.getOrganCode()); 
object.put("createTime", user.getCreateTime()); 
object.put("creator", user.getCreator()); 
object.put("menusId", user.getMenusId()); 
object.put("isValid", (user.getValid().equals("1")?"有效":"无效")); 
array.add(object); 
} 
AjaxTool.returnAjaxResponse(response, array.toJSONString()); 
} 
//获取总的记录数和总页数 
public void getPageCount(ActionMapping mapping, ActionForm form, 
HttpServletRequest request, HttpServletResponse response){ 
RequestTool tool = new RequestTool(request); 
int pageSize = tool.getIntParameter("pageSize"); 
List<POJO> pojos = serviceSmUserImpl.findAll(); 
int pageCount = pojos.size()% pageSize > 0 ? (pojos.size()/ pageSize+1):(pojos.size()/ pageSize); 
JSONArray array = new JSONArray(); 
JSONObject object = new JSONObject(); 
object.put("pageCount", pageCount); 
object.put("totalCount", pojos.size()); 
array.add(object); 
AjaxTool.returnAjaxResponse(response,array.toJSONString()); 
}

文件打包下载
Javascript 相关文章推荐
16个最流行的JavaScript框架[推荐]
May 29 Javascript
jQuery下通过replace字符串替换实现大小图片切换
May 22 Javascript
js自执行函数的几种不同写法的比较
Aug 16 Javascript
jQuery中change事件用法实例
Dec 26 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
May 16 Javascript
js+css实现上下翻页相册代码分享
Aug 18 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
Sep 09 Javascript
JS前向后瞻正则表达式定义与用法示例
Dec 27 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
Aug 07 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
Nov 08 Javascript
vue开发简单上传图片功能
Jun 30 Javascript
video.js添加自定义组件的方法
Dec 09 Javascript
基于jquery实现的表格分页实现代码
Jun 21 #Javascript
jquery异步请求实例代码
Jun 21 #Javascript
读jQuery之九 一些瑕疵说明
Jun 21 #Javascript
读jQuery之八 包装事件对象
Jun 21 #Javascript
读jQuery之七 判断点击了鼠标哪个键的代码
Jun 21 #Javascript
读jQuery之六 缓存数据功能介绍
Jun 21 #Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
Jun 20 #Javascript
You might like
php错误级别的设置方法
2013/06/17 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
9个实用的PHP代码片段分享
2015/01/22 PHP
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
2007/04/20 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
jquery 笔记 事件
2011/11/02 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
jquery重复提交请求的原因浅析
2014/05/23 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
Node.js 基础教程之全局对象
2017/08/06 Javascript
Angular 开发学习之Angular CLI的安装使用
2017/12/31 Javascript
vue如何判断dom的class
2018/04/26 Javascript
解决在vue项目中webpack打包后字体不生效的问题
2018/09/01 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
JS实现使用POST方式发送请求
2019/08/30 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
python使用calendar输出指定年份全年日历的方法
2015/04/04 Python
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
python中的lambda表达式用法详解
2016/06/22 Python
详解python 字符串和日期之间转换 StringAndDate
2017/05/04 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
python字符串Intern机制详解
2019/07/01 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
2020/04/22 Python
Python用dilb提取照片上人脸的示例
2020/10/26 Python
澳大利亚领先的宠物用品商店:VetSupply
2017/09/08 全球购物
Paul’s Boutique官网:英国时尚手袋品牌
2018/03/31 全球购物
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
美术专业个人自我评价
2014/01/18 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers