layui 通过laytpl模板,以及laypage分页实现
一、引用js依赖
jquery-1.11.3.min.js , layui.all.js, json2.js
二、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();// 渲染 }; /** * 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); } } }); }); } }); }; /** * 分页插件刷新当前页的数据,必须有跳转的确定按钮,因为根据按钮点击事件刷新 */function reloadCurrentPage(){ $(".layui-laypage-btn").click(); };<!-- 分页表格 --><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><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>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(); });<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; }); }); }); layui 通过laytpl模板,以及laypage分页实现的更多相关文章
- LayUI分页,LayUI动态分页,LayUI laypage分页,LayUI laypage刷新当前页
LayUI分页,LayUI动态分页,LayUI laypage分页,LayUI laypage刷新当前页 >>>>>>>>>>>> ...
- layui.laytpl 模板引擎用法
目录 layui下载地址: 最终效果: 模板引擎文档 手册地址: 以下是代码思路: layui下载地址: https://www.layui.com/ 最终效果: 模板引擎文档 手册地址: https ...
- 拿来主义:layPage分页插件的使用
布衣之谈 所谓插件,大概就是项目中可插可拔的比较小功能化的组件:这些功能组件若能力可及,自己也可以完成——也即自己造轮子,但翻看各种技术社区,相关领域的神人们往往会有更好的实现方案贡献出来,这个时候你 ...
- 如何基于layui的laytpl实现数据绑定
想了半天才想起自己园子的登录密码.可想而知,多长时间没登录了 正文一开始用layui做了几个管理系统,所以用起来觉得确实很容易上手,管理后台最常用的就是form和table以及弹窗类.layui提供的 ...
- laytpl模板——怎么使用ajax与数据交互
第一次在项目中用laytpl模板,下面是一些使用过程中的探索,希望对小伙伴们有所帮助. 注:第一次使用这个模板的小伙伴建议先去看看官网 laytpl <script type="tex ...
- doT.js模板和pagination分页应用
doT.js模板和pagination分页应用 博客中模拟了数据加载初始化的过程.doT.js渲染每一项内容的数据项.示例如下: <script id="Messtmpl" ...
- 基于layPage分页插件浅析两种分页方式
最近在开发过程中经常用到分页,今天挤出些时间来捋一捋自己的经验 在web开发中,一般显示数据列表页时,我们会用到分页控件来显示数据.采用分页一般基于两种不同的需求,一种是数据量不算很大,但是在页面展示 ...
- 记录项目中用的laypage分页代码
最终才觉得,好记性不如烂笔头,毕竟已经不是刚毕业时候的巅峰了,精力有所下降,很多时候记不住东西. 参考url:http://www.layui.com/laypage/ 直接上代码了 <scri ...
- layui之layer打开table后分页无效的解决方法
1.原代码: <body> <div id="showalladdableavms" style="display: none;width:100%&q ...
随机推荐
- 爬虫之图片懒加载技术、selenium工具与PhantomJS无头浏览器
图片懒加载技术 selenium爬虫简单使用 2.1 selenium简介 2.2 selenium安装 2.3 selenium简单使用 2.3.1 selenium使用案例 2.3.2 selen ...
- 8.1Go并发
第八章 Go并发 Go语言区别于其他语言的一大特点就是出色的并发性能,最重要的一个特性那就是go关键字. 并发场景: UI小姐姐一边开着PS软件,一边微信疯狂的和产品经理打字交流,后台还听着网易云音乐 ...
- kubernetes flannel pod CrashLoopBackoff解决
背景 某环境客户部署了一个kubernetes集群,发现flannel的pod一直重启,始终处于CrashLoopBackOff状态. 排查 对于始终CrashLoopBackOff的pod,一般是应 ...
- 在DAO的查询操作里,数据库查询到记录,sql语句也成功执行,但是返回的对象是null
在这里 如果改成User user=null; 后面 对user对象的赋值是会失败的. 原因: 要赋值的话,一定要有对象,要new一下给对象分配空间然后再给对象赋值.
- 基于postman测试接口(整套接口测试)
基于postman测试接口(整套接口测试) 可以解决的问题 几百个接口人工测试接口过于繁杂 大多测试无法使用请求结果当参数 可以使用随机参数 支持swagger信息导入 随账号持久化保存数据 对集合一 ...
- 【python爬虫】scrapy入门4--添加cookies
(1) settings.py 取消注释:COOKIES_ENABLED = True (2)爬虫xx.py def parse(self, response): c_dic = {自己抓包} # 获 ...
- SPL常用函数
使用SPL_AUTOLOAD_REGISTER装载类 <?php /** * libs/Test.class.php */ class Test { function __construct() ...
- C语言Printf()规定符号
%d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %o 无符号以八进制表示的 ...
- Kubernetes实战 - 从零开始搭建微服务 - 1.5 提高可用性-发布多节点的Node/Express网络应用程序
1.5 提高可用性-发布多节点的Node/Express网络应用程序 Kubernetes实战 - 从零开始搭建微服务 前言 在上一篇文章中,已经学习了如何简单地开发一个单层网络应用.[Kuberne ...
- 附件2:async/await
在实际开发中总会遇到许多异步的问题,最常见的场景便是接口请求之后一定要等一段时间才能得到结果,如果遇到多个接口前后依赖,那么问题就变得复杂.大家都一直在尝试使用更好的方案来解决这些问题.最开始只能利用 ...