jQuery分页
本文最后更新于 2024-11-02,文章内容可能已经过时。
jsp部分
table的class=pagingTable,ul的div的class=paging,这些都要用于jQuery识别元素。
<tr class="text-center">
<th class="text-center">产品编号</th>
<th class="text-center">产品名称</th>
<th class="text-center">产品关系码</th>
<th class="text-center">操作</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="paging">
<ul class="pagination">
<li><a href="#">首页</a></li>
<li><a href="#">«</a></li>
<li><a href="#">»</a></li>
<li><a href="#">尾页</a></li>
</ul>
</div>
</div>
jQuery部分
<div>
<!-- 定义表格框架 -->
<table id="productTable" class="pagingTable">
<thead>
<tr class="text-center">
<th class="text-center">产品编号</th>
<th class="text-center">产品名称</th>
<th class="text-center">产品关系码</th>
<th class="text-center">操作</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="paging">
<ul class="pagination">
<li><a href="#">首页</a></li>
<li><a href="#">«</a></li>
<li><a href="#">»</a></li>
<li><a href="#">尾页</a></li>
</ul>
</div>
</div>
jQuery部分
<script type="text/javascript">
$(function() {
//初始化页面数据
paging(1, 10);
/*分页功能*/
function paging(pageNow, pageSize) {
//将参数转换为数字
var pageNow = parseInt(pageNow);
var pageSize = parseInt(pageSize);
$.ajax({
url : '${pageContext.request.contextPath}/TankManageServlet',
type : 'post',
dataType : 'json',
//后台传入搜索数据,以及页码数据
data : {
productId : $("#productId").val(),
productName : $("#productName").val(),
relationId : $("#relationId").val(),
pageNow : pageNow,
pageSize : pageSize,
},
async : true,
success : function(data) {
var pageCount = parseInt(data.pageCount);
//生成分页左部分
getPageLeft(pageSize, pageNow);
//加载页码
getPage(pageSize, pageNow, pageCount);
//生成分页右部分
getPageRight(pageSize, pageNow, pageCount);
var tb = $(".pagingTable tbody");
//加载当前页码数据
getJsonList(tb, data.jsonList);
},
error : function() {
alert("数据加载失败!");
}
});
}
/*动态加载分页的左半部分*/
function getPageLeft(pageSize, pageNow) {
var page = $(".paging ul");
page.empty();
//生成pageSize,并添加触发事件
page.append("<li><a href='#'>显示<select id='pageSize'><option>2</option><option>10</option><option>15</option><option>20</option></select>条</a></li>");
$("#pageSize").val(pageSize);
$("#pageSize").change(function() {
paging(1, $("#pageSize").val());
});
//生成首页,并添加点击事件
page.append("<li><a id='first' href='#'>首页</a></li>");
$("#first").click(function() {
paging(1, pageSize);
});
//生成上一页,并添加点击事件
page.append("<li><a id='previous' href='#'>«</a></li>");
$("#previous").click(function() {
if (pageNow == 1) {
return false;
} else {
paging(pageNow - 1, pageSize);
}
});
}
/*动态加载页码*/
function getPage(pageSize, pageNow, pageCount) {
var page = $(".paging ul");
var pageNumber = 7;//显示页码条数
var halfPageNumber = parseInt(pageNumber / 2);
//生成页码
if (pageCount <= pageNumber) {
//动态生成页码
for (var i = 1; i <= pageCount; i++) {
page.append("<li><a class='number' href='#'>" + i
+ "</a></li>");
}
} else if (pageNow > pageCount - halfPageNumber) {
for (var i = pageCount - (pageNumber - 1); i <= pageCount; i++) {
page.append("<li><a class='number' href='#'>" + i
+ "</a></li>");
}
} else if (pageNow <= halfPageNumber + 1) {
for (var i = 1; i <= pageNumber; i++) {
page.append("<li><a class='number' href='#'>" + i
+ "</a></li>");
}
} else {
//动态生成页码
for (var i = pageNow - halfPageNumber; i <= pageNow
+ halfPageNumber; i++) {
page.append("<li><a class='number' href='#'>" + i
+ "</a></li>");
}
}
//向每个页码添加点击事件
$($(".paging ul li .number")).each(function() {
$(this).click(function() {
paging($(this).text(), pageSize);
});
});
}
/*动态加载分页右半部分*/
function getPageRight(pageSize, pageNow, pageCount) {
var page = $(".paging ul");
//生成下一页,并添加点击事件
page.append("<li><a id='next' href='#'>»</a></li>");
$("#next").click(function() {
if (pageNow == pageCount) {
return false;
} else {
paging(pageNow + 1, pageSize);
}
});
//生成尾页,并添加点击事件
page.append("<li><a id='last' href='#'>尾页</a></li>");
$("#last").click(function() {
paging(pageCount, pageSize);
});
//生成当前页码
page
.append("<li><a href='#'><span>第<input id='pageNow' style='width:30px;height:15px' value='"+pageNow+"'>/"
+ pageCount + "页</span></a></li>");
//输入框跳转界面
$("#pageNow").change(function() {
var pageNow = parseInt($(this).val());
if (pageNow > 0 && pageNow <= pageCount) {
paging(pageNow, pageSize);
} else {
alert("请输入正确的页码!");
}
});
}
/* 动态加载 json数组
* tb:<tbody>
* jsonList:数据的json数组
*/
function getJsonList(tb, jsonList) {
tb.empty();// 清空<tbody>
if (jsonList && jsonList.length > 0) {
// 遍历数组的每一个JSON
$
.each(
jsonList,
function(i, row) {
var tr = $('<tr>');
// 遍历JSON中的每一条数据
$.each(row, function(name, value) {
tr.append('<td>' + value + '</td>');
});
//添加删除按钮
tr
.append("<a class='btn btn-danger btn-xs' type='button'>删除</a>");
tb.append(tr);
});
$(".pagingTable tbody tr").each(function() {
var productId = $(this).children().eq(0).text();
$(this).children().eq(3).click(function() {
deleteProduct(productId);
});
});
}
}
);
</script>
实现效果

本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 晨哥之家
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果
音乐天地