/**
* 生成分页器
* @param ele 需要添加分页器的元素
* @param offset 偏移量,即从第offset开始
* @param length 总记录条数
* @param showPages 分页器显示的页数,超过则隐藏多余的页
* @param rows 每页显示的记录条数
* @param cssType 分页样式,不填则为默认表格后添加tr
*/
function burster(ele, offset, length, showPages, rows, cssType) {
//将分页器装入table中
if (length && length > offset) {
var pageHtml = "";
//清空需要装入的html
var ass = "";
//需要显示的前页数/当前页
var beforePages = Math.ceil(offset / rows);
//需要显示的后页数
var afterPages = Math.ceil((length - offset ) / rows);
//总页数
var pages = Math.ceil(length / rows);
var k = 0;
//alert("总页数" + pages + " 前页数 " + beforePages + " 后页数 " + afterPages);
//若页数小于showPages页,则全部显示
if (pages >= 0 && pages <= showPages) {
for (k = 0; k < pages; k++) {
if (k == beforePages) {
pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
} else {
pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
}
}
}
//总页数大于showPages页
else if (pages > showPages) {
if (beforePages <= Math.ceil(showPages / 2) && afterPages > showPages + 1) {
for (k = 0; k < showPages; k++) {
if (k == beforePages) {
pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
} else {
pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
}
}
pageHtml += "<li><a class='pages' offset='" + ((pages - 1) * rows) + "'>..." + pages + "</a></li>";
}
else if (beforePages <= Math.ceil(showPages / 2) && afterPages == showPages + 1) {
for (k = 0; k < showPages - 1; k++) {
if (k == beforePages) {
pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
} else {
pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
}
}
pageHtml += "<li><a class='pages' offset='" + ((pages - 1) * rows) + "'>..." + pages + "</a></li>";
}
else if (beforePages <= Math.ceil(showPages / 2) && afterPages <= showPages) {
for (k = 0; k < showPages - 1; k++) {
if (k == beforePages) {
pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
} else {
pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
}
}
pageHtml += "<li><a class='pages' offset='" + ((pages - 1) * rows) + "'>..." + pages + "</a></li>";
}
else if (beforePages > Math.ceil(showPages / 2) && beforePages <= showPages && afterPages > showPages) {
pageHtml += "<li><a class='pages' offset='0'>1...</a></li>";
for (k = beforePages - Math.ceil(showPages / 2) + 1; k < beforePages + Math.ceil(showPages / 2); k++) {
if (k == beforePages) {
pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
} else {
pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
}
}
pageHtml += "<li><a class='pages' offset='" + ((pages - 1) * rows) + "'>..." + pages + "</a></li>";
}
else if (beforePages > showPages && afterPages > showPages) {
pageHtml += "<li><a class='pages' offset='0'>1...</a></li>";
for (k = beforePages - Math.ceil(showPages / 2) + 1; k < beforePages + Math.ceil(showPages / 2); k++) {
if (k == beforePages) {
pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
} else {
pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
}
}
pageHtml += "<li><a class='pages' offset='" + ((pages - 1) * rows) + "'>..." + pages + "</a></li>";
}
else if (beforePages > Math.ceil(showPages / 2) && beforePages <= pages && afterPages <= showPages && afterPages > Math.ceil(showPages / 2) + 1) {
pageHtml += "<li><a class='pages' offset='0'>1...</a></li>";
for (k = beforePages - Math.ceil(showPages / 2) + 1; k < beforePages + Math.ceil(showPages / 2); k++) {
if (k == beforePages) {
pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
} else {
pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
}
}
pageHtml += "<li><a class='pages' offset='" + ((pages - 1) * rows) + "'>..." + pages + "</a></li>";
}
else if (beforePages > pages && afterPages <= showPages && afterPages > Math.ceil(showPages / 2) + 1) {
pageHtml += "<li><a class='pages' offset='0'>1...</a></li>";
for (k = beforePages - Math.ceil(showPages / 2) + 1; k < beforePages + Math.ceil(showPages / 2); k++) {
if (k == beforePages) {
pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
} else {
pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
}
}
pageHtml += "<li><a class='pages' offset='" + ((pages - 1) * rows) + "'>..." + pages + "</a></li>";
}
else if (beforePages > Math.ceil(showPages / 2) && afterPages <= Math.ceil(showPages / 2) + 1) {
pageHtml += "<li><a class='pages' offset='0'>1...</a></li>";
for (k = beforePages - Math.ceil(showPages / 2) + 1; k < pages; k++) {
if (k == beforePages) {
pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
} else {
pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
}
}
}
}
//判断"上一页"和"下一页"是否存在
var upPage;
var downPage;
if (offset == 0 || (offset < rows && (offset % rows != 0))) {
upPage = "<li><a class='pages' offset='" + parseInt(offset) + "' >?</a></li>"
} else {
upPage = "<li><a class='pages' offset='" +
(parseInt(offset) - parseInt(rows)) +
"' >?</a></li>";
}
if (offset >= (length - rows)) {
downPage = "<li><a class='pages' offset='" + parseInt(offset) + "'>?</a></li>"
} else {
downPage = "<li><a class='pages' offset='" +
parseInt(parseInt(offset) + parseInt(rows)) +
"'>?</a></li>"
}
//TODO 自定义分页器的样式
if (cssType) {
if (pages != 1) {//TODO 分页页数小于1页时,不分页
if (cssType == "【自定义的样式名】") {
ass += "<div id='pager' style='position:relative;height:34px;margin:0; '>" +
"<ul style='position:absolute;right:0;margin: 0;' class='pagination'>" +
upPage + pageHtml + downPage +
"</ul></div>";
//table中注入拼装的记录
ele.append(ass);
}
} else {
}
} else {
//分页部分
ass += "<tr><td colspan='10' align='right'>" +
"<div id='pager' style='position:relative;height:40px;'>" +
"<h4 id='result' style='position:absolute;left:0;'>" +
"共有" + length + "条记录</h4>" +
"<ul style='position:absolute;right:0;' class='pagination'>" +
upPage + pageHtml + downPage +
"</ul></div></td></tr>";
//table中注入拼装的记录
ele.append(ass);
}
}
}
bootstrap自带分页器的构造函数
最新推荐文章于 2022-02-12 22:30:23 发布