精华内容
下载资源
问答
  • java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页
  • 本文主要介绍了ajax实现分页和分页查询的相关知识,具有很好的参考价值,下面跟着小编一起来看下吧
  • 分页功能是经常使用的一个功能,因此用PHP实现分页,文本分页和数字分页,对其以函数形式进行了封装
  • ajax实现分页

    2017-07-12 09:03:44
    ssm框架ajax实现分页 自定义分页数据
  • PagedDataSource实现分页

    2010-12-27 17:18:40
    PagedDataSource实现分页 PagedDataSource实现分页 PagedDataSource实现分页 PagedDataSource实现分页
  • bootstrap实现分页(实例)

    万次阅读 多人点赞 2018-03-20 12:35:33
    首先需要明确的一点是,哪些数据是需要分页的,单从数据显示上其实是没有必要分页的,因为页面是可以显示的出来的,但是作为一个相对比较合格的前端,你首先要考虑的不仅仅是这个功能是不是可以实现,而是要考虑用户...

    写前端都会面临的一个问题就是分页,如果是纯js分页也是可以的,只是可能代码量比较大,所以今天写一个关于用bootstrap框架分页的例子,希望以后可以帮助到一些对这方面比较头疼的码农。

    首先需要明确的一点是,哪些数据是需要分页的,单从数据显示上其实是没有必要分页的,因为页面是可以显示的出来的,但是作为一个相对比较合格的前端,你首先要考虑的不仅仅是这个功能是不是可以实现,而是要考虑用户体验是不是好的,在既有功能上如果可以更多的考虑用户体验的问题,那么才可以算是一个相对比较合格的前端工程师。

    先看渲染图:

    这个是一个项目中的例子,今天就做以这个为例子,做一下

    首先我们将需要用的数据准备好(这个一般是ajax请求到的数据,现在我们直接放到一个js里面,加载js的时候直接取出数据)

    var testboke = {
        "code":200,
        "message":null,
        "data":{
            "total":17,//总条数
            "size":10,//分页大小-默认为0
            "pages":2,//总页数
            "current":1,//当前页数
            "records":[//author-riverLethe-double-slash-note数据部分
                {
                    "id":17,//项目id
                    "userName":"Night夜",//发起人名称
                    "companyName":"康佰裕",//发起人公司名称
                    "ptypeName":"13",//发起项目类别
                    "pask":"13",
                    "pname":"13",
                    "pdesc":"13"
                },
                {
                    "id":16,
                    "userName":"Night夜",
                    "companyName":"康佰裕",
                    "ptypeName":"12",
                    "pask":"12",
                    "pname":"12",
                    "pdesc":"12"
                },
                {
                    "id":15,
                    "userName":"BB机",
                    "companyName":"北京电影",
                    "ptypeName":"11",
                    "pask":"11",
                    "pname":"11",
                    "pdesc":"11"
                },
                {
                    "id":14,
                    "userName":"BB机",
                    "companyName":"北京电影",
                    "ptypeName":"9",
                    "pask":"9",
                    "pname":"9",
                    "pdesc":"9"
                },
                {
                    "id":13,
                    "userName":"BB机",
                    "companyName":"北京电影",
                    "ptypeName":"7",
                    "pask":"7",
                    "pname":"7",
                    "pdesc":"7"
                },
                {
                    "id":12,
                    "userName":"Night夜",
                    "companyName":"康佰裕",
                    "ptypeName":"6",
                    "pask":"6",
                    "pname":"6",
                    "pdesc":"6"
                },
                {
                    "id":11,
                    "userName":"BB机",
                    "companyName":"北京电影",
                    "ptypeName":"5",
                    "pask":"5",
                    "pname":"5",
                    "pdesc":"5"
                },
                {
                    "id":10,
                    "userName":"Night夜",
                    "companyName":"康佰裕",
                    "ptypeName":"4",
                    "pask":"4",
                    "pname":"4",
                    "pdesc":"4"
                },
                {
                    "id":9,
                    "userName":"BB机",
                    "companyName":"北京电影",
                    "ptypeName":"3",
                    "pask":"3",
                    "pname":"3",
                    "pdesc":"3"
                },
                {
                    "id":8,
                    "userName":"Night夜",
                    "companyName":"康佰裕",
                    "ptypeName":"2",
                    "pask":"2",
                    "pname":"2",
                    "pdesc":"2"
                }
            ]
        }
    }

    接下来画页面的表格:

    <body>
    			<div class="templatemo-content col-1 light-gray-bg">
    				<div class="templatemo-top-nav-container">
    					<div class="row">
    						<nav class="templatemo-top-nav col-lg-12 col-md-12">
    							<li>
    								<a href="">发起项目列表管理</a>
    							</li>
    						</nav>
    					</div>
    				</div>
    				<!--正文部分-->
    				<div style="background: #E8E8E8;height: 60rem;">
    
    					<div class="templatemo-content-container">
    						<div class="templatemo-content-widget no-padding">
    							<!--表头-->
    							<div class="panel-heading templatemo-position-relative">
    								<h2 class="text-uppercase">发起项目列表</h2></div>
    							<div class="panel panel-default table-responsive" id="mainContent">
    
    							</div>
    						</div>
    					</div>
    				</div>
    
    				<div class="pagination-wrap" id="callBackPager">
    				</div>
    				<footer class="text-right">
    					<p>Copyright &copy; 2018 Company Name | Designed by
    						<a href="http://www.csdn.com" target="_parent">csdn</a>
    					</p>
    				</footer>	
    	</body>

    这个时候也页面上是没有任何的元素的,因为我们需要的是将页面上的表格用js动态的画出来,这样才可以实现取出来的数据是可以分页的,但是画表格的前提是你要可以拿到数据对不对,所以接下来应该是拿数据,而不是急着画表格,因为没有数据的时候你的表格即使是画出来了,也是显示不出来的,那么我们开始拿数据:

    我们写一个函数取数据:

    /*将数据取出来*/
    		function data(curr, limit) {
    				//console.log("tot:"+totalCount)
    						/*拿到总数据*/
    				totalCount = testboke.data.total; //取出来的是数据总量
    				dataLIst = testboke.data.records; // 将数据放到一个数组里面(dataLIst 还未声明,莫着急)
    				createTable(curr, limit, totalCount);
                    console.log("tot:"+totalCount)
    		}

    拿到数据以后怎么做,分页,是的,不是急着将数据放到表格里面,先分页,ok我们加载分页的js(bootstrap的分页js)

    		<link href="../../css/font-awesome.min.css" rel="stylesheet" />
    		<link href="../../css/bootstrap.min.css" rel="stylesheet" />
    		<link href="../../css/templatemo-style.css" rel="stylesheet" />
    		<link href="../../css/layui/css/layui.css" rel="stylesheet" />
    		
    		<script src="../../js/bootstrap.min.js" type="text/javascript"></script>
    		<script src="../../js/jquery-1.8.3-min.js" type="text/javascript"></script>
    		<script src="../../js/jquery.min.js" type="text/javascript"></script>
    		<script src="../../js/extendPagination.js" type="text/javascript"></script>
    		<script src="../../js/layui/lay/dest/layui.all.js" type="text/javascript"></script>
    		<!--引如测试数据的js-->
    		<script src="../../js/testcode.js" type="text/javascript"></script>

    上面的这些js,css都可以去cdn上面找到,除了testcode,在最上面,就是我们加载数据的js。

    下面就是将分页的代码写上:

    var currPage = 1;
    		var totalCount;
    		var dataLIst = [];
    		window.onload = function() {
    			/*取到总条数*/
    			/*每页显示多少条  10条*/
    			var limit = 10;
    			data(currPage, limit)
    			//console.log(totalCount)
    			createTable(1, limit, totalCount);
    			$('#callBackPager').extendPagination({
    				totalCount: totalCount,
    				limit: limit,
    				callback: function(curr, limit, totalCount) {
    					data(curr, limit)
    				}
    			});
    		}

    加载以后的效果是这样的:

     

     
     
     
     
     

    这个时候就是已经基本将数据处理好了,只是没有将数据放进去,最后我们将数据放进去就可以了,(我的写法不建议借鉴,很多现成的循环画表格的方法,我是原生的拼接字符串写的,不嫌麻烦的可以自己拼一下,毕竟不管是什么框架,最底层的还是这样的实现原理)

    /*创建的是一个表格,并将数据放进去*/
    		function createTable(currPage, limit, total) {
    			var html = [],
    				showNum = limit;
    			if(total - (currPage * limit) < 0) showNum = total - ((currPage - 1) * limit);
    			html.push(' <table class="table table-striped table-bordered templatemo-user-table" style="margin-left: 0;">');
    			html.push(' <thead><tr><th>序号</th><th>项目名称</th><th>类别</th><th>发起人</th><th>单位</th><th>详情</th><th>操作</th></tr></thead><tbody>');
    
    			for(var i = 0; i < showNum; i++) {
    				html.push('<tr>');
    				html.push('<td>' + dataLIst[i].id + '</td>');
    				html.push('<td>' + dataLIst[i].pname + '</td>');
    				html.push('<td>' + dataLIst[i].ptypeName + '</td>');
    				html.push('<td>' + dataLIst[i].userName + '</td>');
    				html.push('<td>' + dataLIst[i].companyName + '</td>');
    				html.push('<td><a href="project_details_init.html?id='+dataLIst[i].id+'" class="templatemo-edit-btn">详情</a></td>');
    				html.push('<td><button class="templatemo-edit-btn" onclick=checkproject(' + dataLIst[i].id + ',"1")>同意' +
    					'</button> <button class="templatemo-edit-btn" onclick=checkproject(' + dataLIst[i].id + ',"2")>拒绝</button></td>');
    				html.push('</tr>');
    			}
    			html.push('</tbody></table>');
    			var mainObj = $('#mainContent');
    			mainObj.empty();
    			mainObj.html(html.join(''));
    		}

    ok,到这里基本就已经将一个页面加载数据和分页处理结束了,是不是很简单,其实本来就不难,只是很多的时候我们不想去测试,当然中间取数据的地方是ajax来处理的,但是为了给你们举例子,我只能将ajax那块取数据的地方直接写到js里面,这个数据是动态的,用ajax取数据的时候,然后就是这个分页其实是后端给数据的时候就已经分好的,我们只是将数据拿到,告诉他页码,他给我们对应页码的数据,前端如果将所有的数据全部拿出来,是不是不可以分页呢?不是的,也是可以的,只是这样的分页性能会很差,因为每次你拿到的数据都是数据库查询所有的数据拿出来的数据,这样对数据库的压力太大了,我们一般叫这种分页为假分页。

    ok最后简单的总结一下,分页其实不难,难在怎么理解这个思路,我看了很多的分页的代码,有的是原生的js分页,是可以实现的,但是只是对于开发者来说是一件得不偿失的事情,毕竟前人是给我们提供的有办法的,我们是没必要纠结那些,代码怎么简单快速的实现是最好的方式。

     

     

     

    展开全文
  • 分页是很多web应用都会用到的,本篇文章主要介绍了Angularjs实现分页和分页算法的示例代码,具有一定的参考价值,有兴趣的可以了解一下。
  • linq实现分页

    2018-08-29 09:31:26
    此代码类很好的用linq技术实现分页,在这将他分享给各位有需要的人。
  • ssh实现分页

    2011-12-16 13:37:16
    ssh实现分页技术 分页实现实例,分页类
  • 此案例使用原生的PageBean实现分页查询,只单纯的为了实现分页而编写的小案例,使用JDBC+Servlet+JSP实现。(数据库代码+源码)
  • python实现分页效果

    2020-09-21 02:42:58
    主要为大家详细介绍了python实现分页效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • struts2.0实现的数据分页实现及实现分页步骤,
  • 本篇文章主要介绍了SSM使用mybatis分页插件pagehepler实现分页示例,使用分页插件的原因,简化了sql代码的写法,实现较好的物理分页,非常具有实用价值,需要的朋友可以参考下
  • 基于springmvc实现分页查询基于springmvc实现分页查询
  • 本篇文章主要介绍了SSM框架实现分页和搜索分页的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • SSH实现分页

    2012-10-12 17:18:49
    SSH实现分页
  • jquery实现分页

    2015-04-21 10:42:51
    jquery实现分页,自带样式,可传多个参数
  • PHP + AJAX 实现无刷新分页 不刷新页面实现分页 PHP AJAX.rar
  • servlet实现分页查询

    2017-11-24 10:16:54
    javaee servlet实现分页查询、修改、删除,采用model2模式实现
  • Listview实现分页加载

    2016-05-11 20:34:20
    Listview实现分页加载
  • 主要介绍了分页技术原理与实现的第二篇:Java+Oracle代码实现分页,感兴趣的小伙伴们可以参考一下
  • 主要介绍了利用js制作html table的分页示例(js实现分页),需要的朋友可以参考下
  • 使用MySQL实现分页查询

    千次阅读 多人点赞 2020-05-21 01:16:55
    在项目开发当中,经常要实现分页功能,在面试时也会经常被问到:什么是分页。这是因为在一个页面上能够显示的数据是有限的,而存放在数据库中的数据往往很多,我们必须将这些数据安放到不同的页面中去。

    写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。

    • 对于文章中出现的任何错误请大家批评指出,一定及时修改。
    • 有任何想要讨论和学习的问题可联系我:zhuyc@vip.163.com。
    • 发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

    使用MySQL实现分页查询

    本文关键字:MySQL、分页查询、真分页、假分页、LIMIT


    在项目开发当中,经常要实现分页功能,在面试时也会经常被问到:什么是分页。这是因为在一个页面上能够显示的数据是有限的,而存放在数据库中的数据往往很多,我们必须将这些数据安放到不同的页面中去。

    一、分页

    1. 什么是分页

    一般在客户端实现分页功能的时候,要显示当前页的数据、当前所在页数、临近页面的按钮以及总页数等等。这些数据随着翻页的进行能够动态的变化,为了实现这样的效果,一般会采取两种办法:真分页假分页。这样的划分方式是从与数据库的交互方式出发的,是每次翻页时都进行查询还是一次性查出所有的数据。

    2. 真分页

    真分页指的是每次在进行翻页时都只查询出当前页面的数据,特点就是与数据库的交互次数较多,但是每次查询的数据量较少,数据也不需要一直保存在内存中。适用于数据量比较大的场景,数据不适合全量查出的情况。

    3. 假分页

    假分页指的是对于要显示的数据一次性全部查出,一直存在在服务端或客户端,在前端进行分页或由服务端控制分页。将根据当前所在页来计算应该显示的数据所在下标,用循环取出目标数据。只有当会话断开或页面关闭,相应的资源才会被释放。

    4. 缓存层

    真分页和假分页都要和数据库进行交互,对于真分页来说不需要担心数据同步的问题,因为每次都是查询出最新的,但是数据库的负担会很重,尤其是用户量大的情况下。
    假分页可以在一定程度上减轻数据库的压力,但是数据不能及时得到同步,除非重新请求或页面刷新。
    一般在企业中会有缓存层的存在,既能有效降低数据库的压力,又能及时的进行数据同步。在对数据库中的数据进行修改后,要将变更后的数据及时同步到缓存层,在进行数据查询时从缓存层获取。

    二、MySQL实现分页

    本文将介绍如何通过真分页的方式,每次取出所需数据。对于不同的数据,实现分页有不同的方式,在MySQL中可以使用LIMIT来限制查询出的数据。

    1. LIMIT用法

    LIMIT出现在查询语句的最后,可以使用一个参数或两个参数来限制取出的数据。其中第一个参数代表偏移量:offset(可选参数),第二个参数代表取出的数据条数:rows。

    • 单参数用法

    当指定一个参数时,默认省略了偏移量,即偏移量为0,从第一行数据开始取,一共取rows条。

    /* 查询前5条数据 */
    SELECT * FROM Student LIMIT 5;
    
    • 双参数用法

    当指定两个参数时,需要注意偏移量的取值是从0开始的,此时可以有两种写法:

    /* 查询第1-10条数据 */
    SELECT * FROM Student LIMIT 0,10;
    /* 查询第11-20条数据 */
    SELECT * FROM Student LIMIT 10 OFFSET 10;
    

    2. 分页公式

    • 总页数计算

    在进行分页之前,我们需要先根据数据总量来得出总页数,这需要用到COUNT函数和向上取整函数CEIL,SQL如下:

    /* 获得数据总条数 */
    SELECT COUNT(*) FROM Student;
    /* 假设每页显示10条,则直接进行除法运算,然后向上取整 */
    SELECT CEIL(COUNT(*) / 10) AS pageTotal FROM Student;
    
    • 核心信息
      • 当前页:pageNumber
      • 每页数据量:pageSize

    在实际操作中,我们能够得到的信息有当前所在页以及每页的数据量,同时要注意一下是否超出了最大页数。以每页10条为例,则前三页的数据应为:

    • 第1页:第1~10条,SQL写法:LIMIT 0,10
    • 第2页:第11~20条,SQL写法:LIMIT 10,10
    • 第3页:第21~30条,SQL写法:LIMIT 20,10

    据此我们可以总结出,LIMIT所需要的两个参数计算公式如下:

    • offset:(pageNumber - 1) * pageSize
    • rows:pageSize

    扫描下方二维码,加入官方粉丝微信群,可以与我直接交流,还有更多福利哦~

    在这里插入图片描述

    展开全文
  • Mybatis拦截器实现分页

    2020-08-31 13:34:48
    本文介绍使用Mybatis拦截器,实现分页;并且在dao层,直接返回自定义的分页对象。具有很好的参考价值,下面跟着小编一起来看下吧
  • 主要为大家详细介绍了python flask实现分页效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • java实现分页技术

    2011-08-21 13:10:50
    java实现分页技术java实现分页技术java实现分页技术java实现分页技术
  • mongoDB实现分页的方法

    2020-09-09 16:46:41
    主要为大家详细介绍了mongoDB实现分页的两种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 原生js实现分页效果

    2020-10-14 17:55:01
    主要为大家详细介绍了原生js实现分页效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • mysql存储过程实现分页

    热门讨论 2011-11-16 15:39:33
    mysql存储过程实现分页 mysql存储过程实现分页 mysql存储过程实现分页 mysql存储过程实现分页
  • 本篇文章主要介绍了yii2实现分页,带搜索的分页功能示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 309,637
精华内容 123,854
关键字:

如何实现分页