本文主要介绍了基于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 laypagepid 分页控件p层的id
* @param pageparams 分页的参数
* @param templateid 分页需要渲染的模板的id
* @param resultcontentid 模板渲染后显示在页面的内容的容器id
* @param url 向服务器请求分页的url链接地址
*/
function renderpagedata(laypagepid, 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 : laypagepid,
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(laypagepid, pageparams, templateid, resultcontentid, url);
}
}
});
});
}
});
};
3、刷新当前分页的方法,可省略
/**
* 分页插件刷新当前页的数据,必须有跳转的确定按钮,因为根据按钮点击事件刷新
*/
function reloadcurrentpage(){
$(".layui-laypage-btn").click();
};
三、页面代码
1、分页表格及分页控件
<!-- 分页表格 -->
<p 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>
</p>
<!-- 分页控件p -->
<p id="imovie-page-p"></p>
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-p", getpageparams(), "page_template_id",
"page_template_body_id", basepath + '/syspermission/pagesyspermission');
};
页面加载初始化分页:
$(function(){
initpage();
});
如果包括上面效果图的查询,如下:
html页面代码
<p>
<form class="layui-form layui-form-pane">
<p class="layui-form-item">
<p class="layui-inline">
<label class="layui-form-label">许可名称</label>
<p class="layui-input-inline">
<input type="text" name="permissionname"
autocomplete="off" class="layui-input" placeholder="请输入许可名称" >
</p>
</p>
<p class="layui-inline">
<label class="layui-form-label">许可编码</label>
<p class="layui-input-inline">
<input type="text" name="permissioncode"
autocomplete="off" placeholder="请输入许可编码" class="layui-input">
</p>
</p>
<p class="layui-inline">
<label class="layui-form-label">菜单名称</label>
<p class="layui-input-inline layui-input-inline-0">
<input type="text" name="menuname"
autocomplete="off" placeholder="请选择菜单名称" class="layui-input">
</p>
</p>
<p class="layui-inline">
<button id="btnsubmit" class="layui-btn" lay-submit="" lay-filter="formfilter">查询</button>
</p>
</p>
</form>
</p>
查询语句:
$(function(){
initpage();
layui.use(['form'], function(){
var form = layui.form();
//监听提交
formon('submit(formfilter)', function(data){
initpage();
return false;
});
});
});
相关推荐:
layui分页效果实现代码分享
php分页类实例分析
jquery封装的分页组件详解
以上就是layui分页和layui laypage分页区别详解的详细内容。