基于bootstrap的分页插件
之前做的分页,是自己后端写一堆代码,返回给前端页面显示,感觉比较繁重、不灵活。今天研究下基于bootstrap的做的插件,整理如下:
在使用bootstrap的插件的时候,需要导入一些css、js。
注意:js的导入顺序,jquery优先导入并且版本要2.x。中文乱码:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
其中:bootstrap-paginator.js下载的地址:https://github.com/lyonlai/bootstrap-paginator 在GitHub上进行下载。
html代码:
<script>
    $('#pageLimit').bootstrapPaginator({
    currentPage: 1,//当前的请求页面。
    totalPages: 20,//一共多少页。
    size:"normal",//应该是页眉的大小。
    bootstrapMajorVersion: 3,//bootstrap的版本要求。
    alignment:"right",
    numberOfPages:5,//一页列出多少数据。
    itemTexts: function (type, page, current) {//如下的代码是将页眉显示的中文显示我们自定义的中文。
        switch (type) {
        case "first": return "首页";
        case "prev": return "上一页";
        case "next": return "下一页";
        case "last": return "末页";
        case "page": return page;
        }
    }
});
</script>
效果:

点击不同的页显示高亮蓝。
让我们一起看下bootstrap的文档介绍:


咱们在引用这个插件的时候需要做以下操作:
后端需要传来数据的可以进行分割多少个页:
def task_list_page(request):
    '''
    功能:该函数主要是起到分页的作用。
    :param request: 用户请求的对象,
    :return: 返回前端数据或者页数。
    '''
    page_dic={'page_content':None,'page_count':None}
    if request.method=='POST':
        page_num=request.POST.get('page',None)
        data_count=request.POST.get('count',None)
        print(page_num,data_count)
        # pagesplit_obj=pagesplit.Pager(page_num)
        page_end=int(page_num)*int(data_count)
        page_start=page_end -int(data_count)
        query_obj=models.Task_info.objects.all()[page_start:page_end]
        page_count=models.Task_info.objects.count()
        page_cont_str=''
        for i in query_obj:
            page_cont_str+='''
            <tr>
            <td>%s</td>
            <td>%s</td>
            <td>%s</td>
            <td><a href="/res_query_check/%s">点击查看任务结果</a></td> </tr>
            '''%(i.id,i.task_name,i.task_user,i.id)
        page_dic['page_content']=page_cont_str
        page_dic['page_count']=page_count
        return  HttpResponse(json.dumps(page_dic))
    elif request.method=='GET':
        page_count = models.Task_info.objects.count()
        x,y=divmod(page_count,12)
        if y:
            page_num=x+1
        else:
            page_num=x
        return render(request,'task/task_list.html',{'pagecount':page_num})#传递数据一共分多少页。
前端js显示页数:
自执行,请求默认第一页数据:
$(function () {
        $.ajax(
                {
                    url:'/task_list_page/',
                    type:'POST',
                    data:{'page':1,'count':12},
                    dataType:'JSON',
                    success:function (callback) {
                        var page_count=callback.page_count;
                        var page_cont=callback.page_content;
                        $('tbody').append(page_cont);
                        $('#last_page').text(page_count)
                    }
                }
        )
    });
注意:$('#last_page').text(page_count)使用的是:id为:last_page
前端代码:
数据:
<table class="table">
                                    <thead>
                                        <tr>
{#                                            <th class="text-center">#</th>#}
                                            <th>任务ID</th>
                                            <th>任务名称</th>
                                            <th>执行用户</th>
                                            <th>执行结果</th>
                                        </tr>
                                    </thead>
<tbody>
                                    </tbody>
                                </table>
分页:
1 <div id="example" style="text-align: center"> <ul id="pageLimit"></ul> </div>
js代码:
$('#pageLimit').bootstrapPaginator({
    currentPage: 1,
    totalPages: {{ pagecount }},
    size:"normal",
    bootstrapMajorVersion: 3,
    alignment:"right",
    numberOfPages:8,
    itemTexts: function (type, page, current) {
        switch (type) {
        case "first": return "首页";
        case "prev": return "上一页";
        case "next": return "下一页";
        case "last": return "末页";
        case "page": return page;
        }//默认显示的是第一页。
    },
        onPageClicked: function (event, originalEvent, type, page){//给每个页眉绑定一个事件,其实就是ajax请求,其中page变量为当前点击的页上的数字。
            $.ajax({
                url:'/task_list_page/',
                type:'POST',
                data:{'page':page,'count':12},
                dataType:'JSON',
                success:function (callback) {
                        $('tbody').empty();
                        var page_count=callback.page_count;
                        var page_cont=callback.page_content;
                        $('tbody').append(page_cont);
                        $('#last_page').text(page_count)
                    }
            })
        }
});
效果:

基于bootstrap的分页插件的更多相关文章
- bootstrap-paginator基于bootstrap的分页插件
		bootstrap-paginator基于bootstrap的分页插件 GitHub 官网地址:https://github.com/lyonlai/bootstrap-paginator 步骤 引包 ... 
- Bootstrap Paginator分页插件
		Bootstrap Paginator分页插件使用示例 最近做的asp.netMVC项目中需要对数据列表进行分类,这个本来就是基于bootstrap开发的后台,因此也就想着bootstrap是否有分页 ... 
- Bootstrap Paginator分页插件+ajax 实现动态无刷新分页
		之前做分页想过做淘宝的那个,但是因为是后台要求不高,就Bootstrap Paginator插件感觉还蛮容易上手,所以就选了它. Bootstrap Paginator分页插件下载地址: Downlo ... 
- Bootstrap Paginator分页插件+ajax
		Bootstrap Paginator分页插件下载地址: DownloadVisit Project in GitHub Bootstrap分页插件属性介绍: http://www.cnblogs. ... 
- 基于vue的分页插件
		相信大家用过很多jquery的分页插件,那这次就用一用基于vue的分页插件. 这里的环境用的是springboot 首先要引入pagehelper的jar文件,版本是1.2.3,配置文件也需要配置一下 ... 
- Bootstrap Paginator分页插件(mark)
		Bootstrap Paginator分页插件 
- Bootstrap Paginator 分页插件参数介绍及使用
		Bootstrap Paginator是一款基于Bootstrap的js分页插件,功能很丰富,个人觉得这款插件已经无可挑剔了.它提供了一系列的参数用来支持用户的定制,提供了公共的方法可随时获得插件状态 ... 
- Bootstrap Paginator分页插件使用示例
		最近做的asp.netMVC项目中需要对数据列表进行分类,这个本来就是基于bootstrap开发的后台,因此也就想着bootstrap是否有分页插件呢,或者说是基于jquery支持的分页功能,这样整体 ... 
- 基于bootstrap 的datatable插件的使用(php版)
		Datatables是一款jquery表格插件.它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能.详细学习请参考其官网:http://datatables.net/中文网:http:/ ... 
随机推荐
- cropper.js
			https://github.com/fengyuanchen/cropper/blob/master/README.md Options See the available options of C ... 
- Throwable 源码阅读
			Throwable 属性说明 /** * Java 语言中所有错误和异常的基类,此类及其子类才能通过 throws 被 JVM 虚拟机抛出. * @since 1.0 */ public class ... 
- [java][转]安装ADT的时候,提示“Cannot complete the install because one or more required items could not be
			今天在安装ADT的时候,提示“Cannot complete the install because one or more required items could not be found. S ... 
- firefox浏览器插件---网址优化
			安装:YSlow插件 之后还必须安装firebug.否则YSlow不能使用. 安装:firebug 下面就可以了 
- Eclipse进行Debug时断点上有一个斜杠,并且debug没有停在断点处
			断点上有斜杠,这是由于设置了Skip All Breakpoints的缘故,调试会忽略所有断点,执行完,只需取消Skip All Breakpoints即可,操作:Run-->Skip All ... 
- centos 7安装redis5
			环境 centos 7 最简安装 官网指导地址:https://redis.io/download 1.yum 安装wget # yum install -y wget 2.安装gcc yum ins ... 
- ubuntu安装dockers过程:
			1. 先对系统进行更新 1.1 apt-get upgrade 1.2 去中国关于dockers的网站 http://get.daocloud.io/ 1.3 安装docker curl -sSL h ... 
- ASP.NET Core 入门笔记 1,项目概览
			(1)新建项目选择ASP.NET Core Web应用程序 (2)程序会自动安装相应的包组件,此时依赖项会有感叹号,等待安装完毕感叹号消失 (3)在项目的文件夹下建立其他文件,都会在项目资源视图中显示 ... 
- 461. 汉明距离(Hamming Distance)leetcode
			首先附上题目链接: https://leetcode-cn.com/problems/hamming-distance/ 一:题目 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目. ... 
- flask 之(三) --- 筛选|分页|过滤
			筛选 查询数据筛选语法:类名.query.筛选符 .all( ):获取结果集:.count( ):获取查询到的对象数量 类名.query.filter(类名.属性.运算符('xxx')).all() ... 
