基于LayUI分页和LayUI laypage分页的使用示例

本文介绍了LayUI分页,LayUI动态分页,LayUI laypage分页,LayUI laypage刷新当前页,分享给大家,具体如下:

效果图:

 一、引用js依赖

主要是jquery-1.11.3.min.js 和 layui.all.js , json2.js用来做json对象转换的

<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/plugin/layui/lay/dest/layui.all.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/json2.js"></script> 

二、js分页方法封装(分页使用模板laytpl)

1、模板渲染

/**
 * 分页模板的渲染方法
 * @param templateId 分页需要渲染的模板的id
 * @param resultContentId 模板渲染后显示在页面的内容的容器id
 * @param data 服务器返回的json对象
 */
function renderTemplate(templateId, resultContentId, data){
  layuiuse(['form','laytpl'], function(){
    var laytpl = layui.laytpl;
    laytpl($("#"+templateId).html()).render(data, function(html){
      $("#"+resultContentId).html(html);
    });
  });
  layui.form().render();// 渲染
};

2、layui.laypage 分页封装

/**
 * layuilaypage 分页封装
 * @param laypageDivId 分页控件Div层的id
 * @param pageParams 分页的参数
 * @param templateId 分页需要渲染的模板的id
 * @param resultContentId 模板渲染后显示在页面的内容的容器id
 * @param url 向服务器请求分页的url链接地址
 */
function renderPageData(laypageDivId, pageParams, templateId, resultContentId, url){
  if(isNull(pageParams)){
    pageParams = {
      pageIndex : 1,
      pageSize : 10
    }
  }
  $ajax({
    url : url,//basePath + '/sysMenu/pageSysMenu',
    method : 'post',
    data : pageParams,//JSON.stringify(datasub)
    async : true,
    complete : function (XHR, TS){},
    error : function(XMLHttpRequest, textStatus, errorThrown) {
      if("error"==textStatus){
        error("服务器未响应,请稍候再试");
      }else{
        error("操作失败,textStatus="+textStatus);
      }
    },
    success : function(data) {
      var jsonObj;
      if('object' == typeof data){
        jsonObj = data;
      }else{
        jsonObj = JSON.parse(data);
      }
      renderTemplate(templateId, resultContentId, jsonObj); 

      //重新初始化分页插件
      layui.use(['form','laypage'], function(){
        laypage = layui.laypage;
        laypage({
          cont : laypageDivId,
          curr : jsonObj.pager.pageIndex,
          pages : jsonObj.pager.totalPage,
          skip : true,
          jump: function(obj, first){//obj是一个object类型。包括了分页的所有配置信息。first一个Boolean类,检测页面是否初始加载。非常有用,可避免无限刷新。
            pageParams.pageIndex = obj.curr;
            pageParams.pageSize = jsonObj.pager.pageSize;
            if(!first){
              renderPageData(laypageDivId, pageParams, templateId, resultContentId, url);
            }
          }
        });
      });
    }
  });
};

3、刷新当前分页的方法,可省略

/**
 * 分页插件刷新当前页的数据,必须有跳转的确定按钮,因为根据按钮点击事件刷新
 */
function reloadCurrentPage(){
  $(".layui-laypage-btn").click();
}; 

三、页面代码

1、分页表格及分页控件

<!-- 分页表格 -->
<div class="layui-form">
 <table class="layui-table">
  <thead>
   <tr>
    <th class="w20"><input type="checkbox" name="checkBoxAll" lay-skin="primary" lay-filter="allChoose"></th>
   <th class="w200">许可名称</th>
   <th class="w200">许可编码</th>
   <th class="w200">菜单名称</th>
   <th>许可链接</th>
  </tr>
   </thead>
   <tbody id="page_template_body_id">
  </tbody>
 </table>
</div>
<!-- 分页控件div -->
<div id="imovie-page-div"></div> 

2、分页模板

<script id="page_template_id" type="text/html">
{{# layui.each(d.list, function(index, item){ }}
<tr>
  <td><input type="checkbox" name="permissionId" lay-skin="primary" value="{{item.permissionId}}"></td>
  <td>{{item.permissionName || ''}}</td>
  <td>{{item.permissionCode || ''}}</td>
  <td>{{item.menuName || ''}}</td>
  <td>{{item.permissionUrl || ''}}</td>
</tr>
{{# }); }}
</script> 

3、分页执行代码:

分页参数:

function getPageParams(){
  var pageParams = {
  pageIndex : 1,
  pageSize : 2
  };
  pageParams.permissionName = $("input[name='permissionName']").val();
  pageParams.permissionCode = $("input[name='permissionCode']").val();
  pageParams.menuName = $("input[name='menuName']").val();
  return pageParams;
}; 

分页执行方法:

function initPage(){
  renderPageData("imovie-page-div", getPageParams(), "page_template_id",
      "page_template_body_id", basePath + '/sysPermission/pageSysPermission');
}; 

页面加载初始化分页:

$(function(){
  initPage();
}); 

如果包括上面效果图的查询,如下:

Html页面代码

<div>
      <form class="layui-form layui-form-pane">
        <div class="layui-form-item">
          <div class="layui-inline">
            <label class="layui-form-label">许可名称</label>
            <div class="layui-input-inline">
              <input type="text" name="permissionName"
                autocomplete="off" class="layui-input" placeholder="请输入许可名称" >
            </div>
          </div>
          <div class="layui-inline">
            <label class="layui-form-label">许可编码</label>
            <div class="layui-input-inline">
              <input type="text" name="permissionCode"
                autocomplete="off" placeholder="请输入许可编码" class="layui-input">
            </div>
          </div>
          <div class="layui-inline">
            <label class="layui-form-label">菜单名称</label>
            <div class="layui-input-inline layui-input-inline-0">
              <input type="text" name="menuName"
                autocomplete="off" placeholder="请选择菜单名称" class="layui-input"> 

            </div>
          </div>
          <div class="layui-inline">
            <button id="btnSubmit" class="layui-btn" lay-submit="" lay-filter="formFilter">查询</button>
          </div>
        </div>
      </form>
    </div>

查询语句:

$(function(){
  initPage(); 

  layui.use(['form'], function(){
    var form = layui.form();
    //监听提交
    formon('submit(formFilter)', function(data){
      initPage();
      return false;
    }); 

  });
});

 四、懂 jquery 插件封装的大神可以将其封装成独立的分页插件,这样更加容易使用。我表示不太懂,^_^

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • layui文件上传实现代码

    本文实例为大家分享了layui文件上传的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>文件上传</title> <link rel="stylesheet" href="layui/css/layui.css"> <link rel="st

  • layui弹出层效果实现代码

    本文实例为大家分享了layui弹出层的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>弹出层</title> <link rel="stylesheet" href="layui/css/layui.css" media="all"> &

  • layui中layer前端组件实现图片显示功能的方法分析

    本文实例讲述了layer前端组件实现图片显示功能的方法.分享给大家供大家参考,具体如下: 实现图片显示功能:layer 1.在这里介绍一种layer前端组件 layer是一款口碑极佳的web弹层组件,她具备全方位的解决方案, 致力于服务各个水平段的开发人员,您的页面会轻松地拥有丰富而友好的操作体验. 官网下载地址:http://layer.layui.com/ 或者点击此处本站下载. 里面有具体的使用方法 这里注意几点:在使用layer前端组件之前,我们要引入layer的js文件 <script

  • layui选项卡效果实现代码

    本文实例为大家分享了layui选项卡的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>选项卡</title> <link rel="stylesheet" href="layui/css/layui.css"> </head> <body&

  • jQuery、layer实现弹出层的打开、关闭功能

    打开弹出层: 在list页面带入layer.js 在list页面点击时,弹出form弹出层,list.js: $(".add_category,.update").click(function(){ //弹出框 var doMain = $('.domain_name').val(); layer.open({ shade: [0.5, '#000', false], type: 2, area: ['900px', '530px'], fix: false, //不固定 maxmin

  • 深入理解jQuery layui分页控件的使用

    $.getJSON( )的使用方法简介 $.getJSON( url [, data ] [, success(data, textStatus, jqXHR) ] ) url是必选参数,表示json数据的地址: data是可选参数,用于请求数据时发送数据参数: success是可参数,这是一个回调函数,用于处理请求到的数据. //内容页面 <br> <div id="notice_div"></div><br> //分页控件 <d

  • layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例

    父层: jsp中: //页面上添加一个隐藏的输入框待用于被子层设置value,从而将子层的数据传递到此页面 <input type="hidden" id="getValue" name="getValue" value="" /> js代码: //设置function,当执行时,弹出子窗口并传递当前窗口名称 //弹出子窗口(选择商家) function choseMerchant() { //获取当前窗口名称 v

  • layui表格实现代码

    本文实例为大家分享了layui基本表格的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>基本表格</title> <link rel="stylesheet" href="layui/css/layui.css"> </head> <bod

  • layui导航栏实现代码

    本文实例为大家分享了layui水平导航菜单的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>导航与面包屑</title> <link rel="stylesheet" href="layui/css/layui.css"> </head> <

  • layui前段框架日期控件使用方法详解

    本文实例为大家分享了layui-日期控件的实现代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>日期</title> <link rel="stylesheet" href="layui/css/layui.css"> </head> <body

随机推荐