基于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 相关文章推荐
input 输入框内的输入事件详细分析
Mar 17 Javascript
一个仿糯米弹框效果demo
Jul 22 Javascript
JQuery限制复选框checkbox可选中个数的方法
Apr 20 Javascript
angularjs学习笔记之双向数据绑定
Sep 26 Javascript
jquery可定制的在线UEditor编辑器
Nov 17 Javascript
JS控制层作圆周运动的方法
Jun 20 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
Aug 23 Javascript
js中数组的常用方法小结
Dec 30 Javascript
javascript将非数值转换为数值
Sep 13 Javascript
vue里如何主动销毁keep-alive缓存的组件
Mar 21 Javascript
vue实现全屏滚动效果(非fullpage.js)
Mar 07 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
Jul 20 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
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
PHP解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
使用PHP函数scandir排除特定目录
2014/06/12 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
YII框架模块化处理操作示例
2019/04/26 PHP
PHP之header函数详解
2021/03/02 PHP
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
2009/09/15 Javascript
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
jquery异步请求实例代码
2011/06/21 Javascript
jQuery常见开发技巧详细整理
2013/01/02 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
2017/01/09 Javascript
JS数组交集、并集、差集的示例代码
2017/08/23 Javascript
Angular数据绑定机制原理
2018/04/17 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
彻底揭秘keep-alive原理(小结)
2019/05/05 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
vue接通后端api以及部署到服务器操作
2020/08/13 Javascript
[02:05]2014DOTA2国际邀请赛 BBC外卡赛赛后总结
2014/07/09 DOTA
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
redis之django-redis的简单缓存使用
2018/06/07 Python
Python 实现数据结构-循环队列的操作方法
2019/07/17 Python
《夸父追日》教学反思
2014/02/26 职场文书
跑操口号
2014/06/12 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
2014年班组长工作总结
2014/11/20 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
离婚协议书范文
2015/01/26 职场文书
家长对孩子的寄语
2015/02/26 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python