前后端结合实现amazeUI分页效果
导读:收集整理的这篇文章主要介绍了前后端结合实现amazeUI分页效果,觉得挺不错的,现在分享给大家,也给大家做个参考。 前后端结合实现amazeUI分页,代码如下所示;借鉴本文在博客https://blog.csdn.net/brav...
收集整理的这篇文章主要介绍了前后端结合实现amazeUI分页效果,觉得挺不错的,现在分享给大家,也给大家做个参考。 前后端结合实现amazeUI分页,代码如下所示;
借鉴
本文在博客https://blog.csdn.net/brave_coder/article/details/52367124的基础上实现的,非常感谢大佬的分享。
前端实现
1、引入paginator.js
(function ($) {
$.fn.paginator = function (options) {
//this指向当前的选择器 VAR config = {
url: "", pageParent: "", totalBars: -1, limIT: -1, offset: 1, callback: null }
//合并参数 var opts = $.extend(config, options);
opts.totalBars = Math.ceil(opts.totalBars / opts.limit);
//计算按钮的总个数 //获取offset参数 var queryString = function (url) {
var offset = (url.split("?")[1]).split("=")[1];
return parseInt(offset);
}
//ajax核心方法,用于分页的数据操作 var ajaxCore = function (offset, fn) {
$.ajax({
"url": opts.url, "data": {
"offset": offset, "limit": opts.limit }
, "dataTyPE": "JSON", "method": "POST", "success": fn }
);
}
//重新装配分页按钮 var pageCore = function (offset) {
if (opts.offset == offset) {
return;
}
//如果是当前页面,那么就什么事都不用干了! else {
ajaxCore(offset, opts.callback);
$(opts.pageParent).empty();
//否则,清空所有的节点,重新向DOM插入新的分页按钮 var output = "";
var nextBar = offset == opts.totalBars ? "li class=\"am-disabled\">
a yxhref=\"javascript:;
\">
»/a>
/li>
" : "li>
a yxhref=\"" + opts.url + (offset + 1) + "\">
»/a>
/li>
";
var PReBar = offset == 1 ? "li class=\"am-disabled\">
a yxhref=\"javascript:;
\">
«/a>
/li>
" : "li>
a yxhref=\"" + opts.url + (offset - 1) + "\">
«/a>
/li>
";
//组装向上一个节点和下一页节点 if (opts.totalBars >
7) {
if (offset 5) {
output += preBar;
for (var i = 1;
i = 5;
i++) {
if (i == offset) {
output += "li class=\"am-active\">
a yxhref=\"" + opts.url + offset + "\">
" + offset + "/a>
/li>
";
}
else {
output += "li>
a yxhref=\"" + opts.url + i + "\">
" + i + "/a>
/li>
";
}
}
output += "li>
span>
.../span>
/li>
";
output += "li>
a yxhref=\"" + opts.url + (opts.totalBars) + "\">
" + (opts.totalBars) + "/a>
/li>
" + nextBar;
}
else if (offset >
= 5 &
&
offset = opts.totalBars - 4) {
//当页面大于7个的时候,那么在第五个和倒数第五个时,执行 output += preBar;
output += "li>
a yxhref=\"" + opts.url + 1 + "\">
" + 1 + "/a>
/li>
";
//第一个 output += "li>
span>
.../span>
/li>
";
//省略号 output += "li>
a yxhref=\"" + opts.url + (offset - 1) + "\">
" + (offset - 1) + "/a>
/li>
";
output += "li class=\"am-active\">
a yxhref=\"" + opts.url + offset + "\">
" + offset + "/a>
/li>
";
output += "li>
a yxhref=\"" + opts.url + (offset + 1) + "\">
" + (offset + 1) + "/a>
/li>
";
output += "li>
span>
.../span>
/li>
";
//省略号;
output += "li>
a yxhref=\"" + opts.url + (opts.totalBars) + "\">
" + (opts.totalBars) + "/a>
/li>
";
//尾页 output += nextBar;
}
else if (offset >
opts.totalBars - 4 &
&
offset = opts.totalBars) {
//当页面位于倒数第四个时候 output += preBar;
output += "li>
a yxhref=\"" + opts.url + 1 + "\">
" + 1 + "/a>
/li>
" + "li>
span>
.../span>
/li>
";
for (var j = 4;
j >
= 0;
j--) {
if (opts.totalBars - j == offset) {
output += "li class=\"am-active\">
a yxhref=\"" + opts.url + (opts.totalBars - j) + "\">
" + (opts.totalBars - j) + "/a>
/li>
";
}
else {
output += "li>
a yxhref=\"" + opts.url + (opts.totalBars - j) + "\">
" + (opts.totalBars - j) + "/a>
/li>
";
}
}
output += nextBar;
}
else {
console.LOG("分页数据出错!");
return;
}
}
else {
output += preBar;
for (var i = 1;
i = opts.totalBars;
i++) {
if (i == offset) {
output += "li class=\"am-active\">
a yxhref=\"" + opts.url + offset + "\">
" + offset+ "/a>
/li>
";
}
else {
output += "li>
a yxhref=\"" + opts.url + i + "\">
" + i+ "/a>
/li>
";
}
}
output += nextBar;
}
$(opts.pageParent).append(output);
opts.offset = offset;
//将偏移量赋值给config里面的offset }
}
//清理函数,防止多绑定事件和重新计算分页 var clear = function () {
$(opts.pageParent).empty().undelegate();
}
//初始化装配分页按钮 var init = function (fn) {
if (typeof (fn) != "function") {
console.log("将不能正确的执行回调函数");
}
else {
opts.callback = fn;
}
clear();
ajaxCore(1, opts.callback);
//执行初始化ajax方法 var preBar = "li class=\"am-disabled\">
a yxhref=\"javascript:;
\">
«/a>
/li>
";
//上一页,(禁用的效果) //如果只有一页,那么禁用下一页 var nextBar = opts.totalBars >
1 ? "li>
a yxhref=\"" + opts.url + 2 + "\">
»/a>
/li>
" : "li class=\"am-disabled\">
a yxhref=\"javascript:;
\">
»/a>
/li>
";
//最后一页 var output = "li class=\"am-active\">
a yxhref=\"" + opts.url + 1 + "\">
1/a>
/li>
";
if (opts.totalBars = 7) {
for (var i = 1;
i opts.totalBars;
i++) {
output += "li>
a yxhref=\"" + opts.url + (i + 1) + "\">
" + (i + 1) + "/a>
/li>
";
}
}
else {
for (var j = 1;
j 5;
j++) {
output += "li>
a yxhref=\"" + opts.url + (j + 1) + "\">
" + (j + 1) + "/a>
/li>
";
}
output += "li>
span>
.../span>
/li>
";
output += "li>
a yxhref=\"" + opts.url + (opts.totalBars) + "\">
" + (opts.totalBars) + "/a>
/li>
";
}
$(opts.pageParent).delegate("a","click", function () {
var offset = queryString($(this).attr("yxhref"));
console.log("ok");
pageCore(offset);
}
);
$(opts.pageParent).append(preBar + output + nextBar);
}
;
init(opts.callback);
//初始化分页引擎 }
}
(window.jquery))2、获取总页数,再获取分页
$.ajax({
type: "GET", url: selectSendNumberNumsByContURL,//获取总数 data: {
}
, dataType: "json", success: function(data){
if (data[0].code == 200) {
$("#paginator").paginator({
url: selectSendNumberByContURL + "?offsets=", pageParent: "#paginator", totalBars: data[0].allNums, limit: 10, offset: 1, callback: function (data1) {
//清空DOM节点 //动态加dom节点 }
}
);
}
else{
}
}
, error: function (err) {
}
}
);
后端实现(分页)
这里是controller,拿到offset(第几页)参数、limit(每页多少数量),再写SQL实现分页就好了。
@RequestMapping(value = "/selectNumberCheckByCont", method = RequestMethod.POST) @ResponseBody public ListReturnUtils>
selectNumberCheckByCont(HttpServletRequest request, HttpServletResponse response) throws Exception {
//统一设置返回数据格式 response.setContentType("application/json");
response.setHeader("Pragma", "no-cache");
response.setCharacterEncoding("UTF-8");
String offset = request.getParameter("offset");
String limit = request.getParameter("limit");
ListReturnUtils>
list = iNumberCheckService.selectNumberCheckByCont(offset, limit);
return list;
}
总结
到此这篇关于前后端结合实现amazeUI分页的文章就介绍到这了,更多相关amazeUI分页内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 前后端结合实现amazeUI分页效果
本文地址: https://pptw.com/jishu/586225.html
