jQuery Pagination plugin 实现分页功能(表格分页,ajax请求后台数据)
投稿于 被查看 12538 次 评论:158
jQuery Pagination plugin 实现分页功能(表格分页,ajax请求后台数据)
jQuery Pagination plugin官方文档http://esimakin.github.io/twbs-pagination/#page-6
使用方法:
<link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.css"> <script src="../node_modules/jquery/dist/jquery.min.js"></script> <script src="../private/jquery.twbsPagination.js"></script> <div id="pagination" class="fr"></div> <scritp> $(function() { getList(); } ) </script>
function getList(page) { var $pagination = $('#pagination'); // 定义默认的参数 var defaultOpts = { currentPage: page, totalPages: 10, first: '', last: '', prev: '<span aria-hidden="true">«</span>', next: '<span aria-hidden="true">»</span>' }; // 初始化插件 $pagination.twbsPagination(defaultOpts); $.ajax({ type: 'POST', url: '/rest/userlist', dataType: 'json', data: {page: page}, success: function (msg) { // 页面初始化获取总页数 var totalPages = msg.totalPages; var currentPage = $pagination.twbsPagination('getCurrentPage'); // 填充用户总数 var total = msg.total; $('.userNum').html(total); // 填充表格数据 setUserTab(msg.data); // 销毁旧的分页,这一步很重要 $pagination.twbsPagination('destroy'); $pagination.twbsPagination($.extend({}, defaultOpts, { currentPage: page ? page : 1, // 判断,如果有page参数,就用page,如果没有的话,就默认为1 startPage: currentPage, totalPages: totalPages })).on('page', function (evt, page) { getList(page); // 传递当前的页码到后台查询数据; }); } }); }
写这个功能的时候遇到一个特别坑爹的地方,初始化的总页数要从后台获取,通过ajax获取,所以我将分页的初始化写在ajax里面,然后点击每个页码的时候,还要再调一次ajax的方法,再次请求后台数据,这样写了之后,初始化的时候ajax会请求两次,就是这里,被坑得不要不要的
后面又看官网的例子,如下:
var $pagination = $('selector'); //先获取分页的元素; var defaultOpts = { totalPages: 20 }; // 定义默认参数,这里的总页数是20页; $pagination.twbsPagination(defaultOpts); // 调用pagination的方法; // ajax请求,获取后台数据 $.ajax({ ..., success: function (data) { var totalPages = data.newTotalPages; // 给总页数重新赋值 var currentPage = $pagination.twbsPagination('getCurrentPage'); // 获取当前页面; $pagination.twbsPagination('destroy'); // 销毁之前生成的分页 // 修改默认参数,将新的数据赋值给参数 $pagination.twbsPagination($.extend({}, defaultOpts, { startPage: currentPage, totalPages: totalPages })); } });
用户评论