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


Posted in Javascript onAugust 02, 2017

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

效果图:

基于LayUI分页和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 插件封装的大神可以将其封装成独立的分页插件,这样更加容易使用。我表示不太懂,^_^

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

Javascript 相关文章推荐
JQuery onload、ready概念介绍及使用方法
Apr 27 Javascript
谈谈我对JavaScript DOM事件的理解
Dec 18 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
May 31 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
Jun 02 Javascript
基于JS实现的随机数字抽签实例
Dec 08 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
Apr 24 jQuery
ES6学习教程之对象的扩展详解
May 02 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
Nov 02 Javascript
微信小程序实现之手势锁功能实例代码
Jul 19 Javascript
JavaScript内置对象math,global功能与用法实例分析
Jun 10 Javascript
基于Node.js的大文件分片上传示例
Jun 19 Javascript
谈一谈vue请求数据放在created好还是mounted里好
Jul 27 Javascript
使用JavaScript实现链表的数据结构的代码
Aug 02 #Javascript
javascript 取小数点后几位几种方法总结
Aug 02 #Javascript
AngularJS实现页面跳转后自动弹出对话框实例代码
Aug 02 #Javascript
jQuery接受后台传递的List的实例详解
Aug 02 #jQuery
angular $watch 一个变量的变化(实例讲解)
Aug 02 #Javascript
浅谈ECMAScript6新特性之let、const
Aug 02 #Javascript
js实现前端图片上传即时预览功能
Aug 02 #Javascript
You might like
PHP实现定时生成HTML网站首页实例代码
2008/11/20 PHP
PHP 之 写时复制介绍(Copy On Write)
2014/05/13 PHP
php常用正则函数实例小结
2016/12/29 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
2020/08/24 PHP
jquery 元素相对定位代码
2010/10/15 Javascript
使用Firebug对js进行断点调试的图文方法
2011/04/02 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
2011/04/19 Javascript
js中创建对象的几种方式示例介绍
2014/01/26 Javascript
jQuery 回车事件enter使用示例
2014/02/18 Javascript
JQuery中clone方法复制节点
2015/05/18 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
Vue实现计算器计算效果
2020/08/17 Javascript
js实现滚动条自动滚动
2020/12/13 Javascript
Python2.x中文乱码问题解决方法
2015/06/02 Python
python编码总结(编码类型、格式、转码)
2016/07/01 Python
django框架实现一次性上传多个文件功能示例【批量上传】
2019/06/19 Python
使用python批量转换文件编码为UTF-8的实现
2020/04/03 Python
Selenium python时间控件输入问题解决方案
2020/07/22 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
python实现在列表中查找某个元素的下标示例
2020/11/16 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
2021/01/05 Python
百丽国际旗下购物网站:优购
2017/02/28 全球购物
中学生在校期间的自我评价分享
2013/11/13 职场文书
测绘工程个人的自我评价
2013/11/23 职场文书
各营销点岗位职责范本
2014/03/05 职场文书
学校文明单位申报材料
2014/05/06 职场文书
2014年教研组工作总结
2014/11/26 职场文书
董事长岗位职责
2015/02/13 职场文书
学习经验交流会演讲稿
2015/11/02 职场文书
党员电教片《信仰》心得体会
2016/01/15 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书