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 ...
随机推荐
- python操作excel----openpyxl模块
openpyxl模块支持.xls和.xlsx格式的excel创建,但是只支持.xlsx格式的读取操作,不支持.xls的读取(可以使用xlrd模块来读取,写入操作也可使用xlwt模块),也可使用pand ...
- 1.1Go环境搭建之Linux
1.ssh远程登录Linux服务器,可选用iTerm.xshell ssh root@ip 2.建议配置好阿里云yum源.epel源 安装git yum install git 3.下载go源码包 / ...
- Django之templates模板
模板渲染: 官方文档:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#std:templatetag-for 模板渲染两种 ...
- UVALive5846
题目大意:见刘汝佳<算法竞赛入门经典——训练指南>P173. 解题思路: 如果要直接求所有单色三角形的个数似乎不简单,正难则反,先求出所有非单色三角形 cnt,answer = C(n,3 ...
- PHP非常用函数汇总
1) ARRAY_FILTER — 用回调函数过滤数组中的单元 function odd ( $var ) { // returns whether the input integer i ...
- vue项目中使用bpmn-番外篇(留言问题总结)
前情提要 “vue项目中使用bpmn-xxxx”系列的七篇文章在上周已经更新完成,发表后,有小伙伴在使用时提出了一些文章中没有讲到的问题,此篇作为番外篇,将大家提出的共性问题解答一下,欢迎大家支持原创 ...
- 2020由浅入深最强Java面试题
1.String,StringBuffer和StringBuilder有什么区别? String是字符串常量,不可变对象,每次对String修改都等同于生成了一个新的String象,然后将指针 ...
- 解决ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 这种问题需要强行重新修改密码,方法 ...
- 百度地图结合ECharts实现复杂覆盖物(Overlay)
先来看效果图 一 前置知识 官方Overlay-覆盖物的抽象基类 方法 返回值 描述 initialize(map: Map) HTMLElement 抽象方法,用于初始化覆盖物,当调用map.add ...
- [Axure教程]0003.元件的触发事件
Axure RP 的每个元件都有着自己独有的和一些公共的触发事件,在不同的情况下触发不同的事件. 这里我们就以上图中文本输入框为例 A.改元件已使用的触发事件 [1].文字改变时:当一个元件内的文字改 ...