分页查询插件 bs_pagination

jQuery Pagination Plugin for Bootstrap | jQuery Plugins (jquery-plugins.net)

前端插件的使用步骤:

1、引入开发包

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    
  <!--以上都是下载好了之后,放到对应的目录中,按照路径才能导入成功-->


    <!--先导入jquery,然后导入bootstrap,被依赖的先导-->
    <!--这里别的jquery版本跑不起来,不显示-->
    <script type="text/javascript" src="jquery/jquery-1.11.1-min.js"></script>

    <!--引入css-->
    <link rel="stylesheet" type="text/css" href="bs/bootstrap_3.3.0/css/bootstrap.min.css">
    <script type="text/javascript" src="bs/bootstrap_3.3.0/js/bootstrap.min.js"></script>

    <!--最后导入,翻页插件-->
    <!--引入css-->
    <link rel="stylesheet" type="text/css" href="bs_pagination-master/jquery.bs_pagination.min.css">
    <script type="text/javascript" src="bs_pagination-master/jquery.bs_pagination.min.js"></script>
    <!--引入语言包-->
    <script type="text/javascript" src="bs_pagination-master/localization/en.js"></script>



</head>

localization目录下的en.min.js 是英语的,现在给他翻译成中文。

 

2、创建容器(提供标签,此插件只能使用div标签装下)

               <!--创建容器-->
        <div id="demoPage01"></div>

3、当容器加载完成之后,容器调用工具函数


    <script type="text/javascript">
       $(function () {

           //调用这个工具函数,默认模拟了1000条表数据。并且会通过 总页数 和 每页显示条数 计算出总条数
           //默认每页显示10条数据,(此工具中,一页最多能显示100条数据)
           $("#demoPage01").bs_pagination({
               currentPage:2,        //当前开始页,默认是1 相当于没计算出来的pageNo 需要你用公式去计算

               totalRows:100,        //总条数,数据库中取
               rowsPerPage:2,        //每页显示条数,用户自己切换,默认是10  相当于pageSize
               totalPages:50,        //总页数
               //注意:他的程序在这里的总条数÷每页显示条数 不能得出 总页数。他不会帮你计算,要自己计算。
               //此三个参数,一个从数据库中查询的,一个是用户选的,最后一个是通过前两个计算出来的

               //设置最多一组显示几个卡片,默认是5,
               visiblePageLinks:5,

               //设置是否显示,"跳转到某页" 的输入框 默认是true
               //好像上面的参数大于10,就不会显示 "跳转到某页" 的输入框了
               showGoToPage:true,

               //设置是否显示 "每页显示条数" 默认是true
               //就是用户可以手动切换,每页显示多少条数据
               //系统会自己计算 总条数÷每页显示条数 得出总共有几页
               //前期是将 总页数 和 每页显示条数 都默认,注释掉,才能帮你计算总页数
                showRowsPerPage:true,

                //是否显示记录的信息 默认是true
                showRowsInfo:true,

                //不管是,切换当前显示多少条数据,还是切换卡片,还是跳转到某页,都会执行此函数
                //执行此函数会返回,切换之后的pageNo和pageSize
                //此函数有两个参数,一个event,一个pageObj
                //对象属性
                onChangePage:function(event,pageObj){
                   //pageObj就代表这个工具函数bs_pagination
                   //pageObj.currentPage可以获取pageNo 第几页
                   //pageObj.rowsPerPage可以获取 一页最多显示几条数据
                   alert("第"+pageObj.currentPage+"页,从表中的,第"+(pageObj.currentPage-1)*pageObj.rowsPerPage+"行数据,开始!");
                    alert("pageSize等于:"+pageObj.rowsPerPage)
               }
           });



       });

    </script>

工具函数中的参数详解

<script type="text/javascript">
   $(function () {

       //调用这个工具函数,默认模拟了1000条表数据。并且会通过 总页数 和 每页显示条数 计算出总条数
       //默认每页显示10条数据,(此工具中,一页最多能显示100条数据)
       $("#demoPage01").bs_pagination({
           currentPage:2,        //当前开始页,默认是1 相当于没计算出来的pageNo 需要你用公式去计算(公式) 

           totalRows:100,        //总条数,数据库中取
           rowsPerPage:2,       //每页显示条数,用户自己切换,默认是10  相当于pageSize
           totalPages:50,        //总页数
           //注意:他的程序在这里的总条数÷每页显示条数 不能得出 总页数。他不会帮你计算,要自己计算。
           //此三个参数,一个从数据库中查询的,一个是用户选的,最后一个是通过前两个计算出来的

           //设置最多一组显示几个卡片,默认是5,
           visiblePageLinks:5,

           //设置是否显示,"跳转到某页" 的输入框 默认是true
           //好像上面的参数大于10,就不会显示 "跳转到某页" 的输入框了
           showGoToPage:true,

           //设置是否显示 "每页显示条数" 默认是true
           //就是用户可以手动切换,每页显示多少条数据
           //系统会自己计算 总条数÷每页显示条数 得出总共有几页
           //前期是将 总页数 和 每页显示条数 都默认,注释掉,才能帮你计算总页数
            showRowsPerPage:true,

            //是否显示记录的信息 默认是true
            showRowsInfo:true,

            //还有一个对象属性,onChangePage
            //不管是,切换当前显示多少条数据,还是切换卡片,还是跳转到某页,都会执行此函数
            //执行此函数会返回,切换之后的pageNo和pageSize
            //此函数有两个参数,一个event,一个pageObj
           onChangePage:function(event,pageObj){
               //pageObj就代表这个工具函数bs_pagination
               alert("第"+pageObj.currentPage+"页,从表中的,第"+(pageObj.currentPage-1)*pageObj.rowsPerPage+"行数据,开始!");
            }



       });
   });

</script>

 

翻页查询是此模块中最难的一个实现;
这里要发送两个查询;第一个查询不算难,第二个难(*);
      这两个都要向后台发送请求去查询。

    1、用户点击修改每页显示最大的条数。会发送请求
            根据需求这里的起始页应该从第一页开始
            假设本来就十条数据,现在是每页显示十条数据,这里本来就只有一页。
            用户修改了每页最大显示条数,现在变成一页显示二十条数据行,是不是还是只有一页?
            除非有二十一条数据行,才能开到第二页去。
            第一个参数pageNo:    每次从第 1 页开始
            第二个参数pageSize:  显示条数的话,是用户自己选择的,不选择则默认是一页显示十条。


    2、用户点击当前第几页(*),假设有二页,用户点击第二页,则需要从表中找出第二页是从哪行数据开始查的。
            第一个参数pageNo:    (第几页-1)/最大显示页    计算第某某页是从表中的哪行开始的?
            第二个参数pageSize:   用户自己选择,,不选择每页显示条数默认是十



        翻页卡片非常难做
        如果有六页,当前是第五页,点击下一页就到了第六页,那下一页和尾页就变灰了不能点了。
        如果有六页,当前是第二页,点击上一页就到了第一页,那上一页和首页就变灰了不能点了。
        假如有一千页需要显示,我们卡片分组,一组显示五张卡片,切换到六页的时候,卡片又回到第一页的样子,拉回来。只不过原来的数字一变成了数字六了。
        点击首页到第一页,点击尾页到最后一页。
        还要根据你点击的效果,还需要动态的变化。

onChangePage:function(event,pageObj){
    //用户点击卡片,则执行一次这个代码,返回用户切换之后的pageNo和pageSize
    // pageObj就代表这个对象本身,所以只需要这个对象.属性,就能获取到值了
 

    //这里传入pageNo和pageSize就可以解决,所有的需求问题
    /*
    1、如果用户点击卡片切换页,currentPage可以显示出当前是第几页数。
        知道了用户想看多少页的内容,就可以通过公式可以计算出,第几页从表中的哪行数据开始。
        rowsPerPage可以得到当前用户设置的最大显示条数。拿到这个两个参数,就可以进行查询。limit给了
        两个参数,就可以查出来。


    2、如果用户点击最大显示条数,那就PageNo默认就是第一页开始,下标就是0
        PageSize直接传进去就好了。
        currentPage就是PageNo , rowsPerPage就是PageSize
    */
    queryConditionAndPage(pageObj.currentPage,pageObj.rowsPerPage);
  //当跳转到市场活动的jsp页面的时候,上面的方法调用,会通过需求每页显示十条记录调用此方法
      /*pageNo开始行,pageSize每页最大的显示条数。用户如果修改最大显示页数,每次都应该从第一行数据开始查询。
      最后通过 总条数 除 每页显示条数 得出总页数,并且最后从第一页开始。
      如果不传条件,则默认查询所有的市场活动。
      传入参数1、5,表示从第一页开始,从表中下标零行开始,每页显示五条数据。从第几行数据开始查询,每页显示几条数据
      查询所有 条件查询和市场活动的方法显示,谁需要谁就调。*/
  function queryConditionAndPage(pageNo,pageSize){
      // alert("此页面第一个执行的函数 ");

// trim()删除前后空格;
      var name=$("#queryName").val().trim();
      var owner=$("#queryOwner").val().trim();
      // var cost=$("#queryCost").val();
      var startDate=$("#queryStartDate").val().trim();
      var endDate=$("#queryEndDate").val().trim();
      //发送请求
      $.ajax({
   //ActivityController类的queryActivityByConditionPage方法
          url:'workbench/activity/queryActivityByConditionPage.do',
          data:{
              name:name,
              owner:owner,
              startDate:startDate,
              endDate:endDate,
      //当前是多少页
              pageNo:pageNo,
      //当前页显示多少条数据
              pageSize:pageSize
          },
          type:'post',
          dataType:'json',
   //显示结果
          success:function(data){
              //显示总条数,将查询回来的总条数,覆盖掉原来写死的这个值
              $("#totalB").text(data.total);

              totalRows=data.total;

              var htmlStr="";
              //显示市场活动的列表,调用each方法,遍历每个市场活动,取出他们的值
      //obj表示当前的activity对象
              $.each(data.aList,function(index,obj) {
                  var cost=obj.cost;
                  htmlStr+="<tr class='active'>";
                  //给checkbox绑定一个属性value等于市场活动的id值,方便后期的修改和删除
                  htmlStr+="<td><input type='checkbox' value="+obj.id+" /></td>";
                  //这里,给市场活动名称添加了一个超链接,点击它,将弹到更加详细的页面去,并在超链接后面携带两个参数,市场活动id、市场活动的名字到那个页面去
                  htmlStr+="<td><a style=\"text-decoration: none; cursor: pointer;\"οnclick=\"window.location.href='workbench/activity/toActivityDetail.do?id="+obj.id+"'\">"+obj.name+"</a></td>";
                   //展示市场活动的所有者
                  htmlStr+="<td>"+obj.owner+"</td>";
                  //展示市场活动的成本
                  htmlStr+="<td>"+cost+"</td>";
                  //展示市场活动的开始日期
                  htmlStr+="<td>"+obj.startDate+"</td>";
                  //展示市场活动的结束日期
                  htmlStr+="<td>"+obj.endDate+"</td>";
                  htmlStr+="</tr>";
              });

              // alert("html字符串现在的长度:"+htmlStr.length);

              //现在子节点还在内存中,将子节点添加到父节点中去。
              //html是覆盖显示。append是追加显示,不会清空原来的内容。
              //after是后显示。before是前显示。
      $("#tBody").html(htmlStr);

              var totalPages=1;

              //计算总页数  总条数/每页显示条数  假设,有8条数据,每页显示2条,那总页数就是4页
      //如果不能整除,就在商的基础上加一,js弱类型语言,取模一定是小数
              if(data.total%pageSize==0){
                  totalPages=data.total/pageSize;
              }else {
                  //parseInt将小数转为整数
                  totalPages=parseInt(data.total/pageSize)+1;
              }
      //本来代码是加在这里的

              //对容器显示翻页函数,显示翻页信息
              // var pageNo;
              // var pageSize;
              // var totalRows;
              $("#demo_pag1").bs_pagination({

                  currentPage:pageNo,            //默认显示当前页数,默认显示1
                  totalPages:totalPages,         //总页数 必填参数,totalRows/rowsPerPage==总页数
                  rowsPerPage:pageSize,          //每页显示条数,默认是10,相当于用户输入的pageSize
                  // totalRows:data.total,          //总条数,默认是一千,数据库中查到的数据
                  totalRows:totalRows,          //总条数,默认是一千,数据库中查到的数据

                  visiblePageLinks: 8,    //一次显示的卡片数量,默认是5

                  showGoToPage:true,      //显示跳转的页面文本框,默认值为true显示,
                  showRowsPerPage:true,   //是否显示每页显示条数,默认值为true
                  showRowsInfo:false,      //显示记录的信息,默认为true

                  onChangePage:function(event,pageObj){

                      queryConditionAndPage(pageObj.currentPage,pageObj.rowsPerPage);

                      //取消全选按钮
                      // $("#checkboxs").prop("checked",false);
                  }

              });

          }
      });
  };
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值