一.前端部分

html只需要放一个有id的div就行了,方便js获取渲染区域

<div id="data_grid" lay-filter="demo" ></div>  

js部分需要注意url为异步数据接口,done是渲染完表格之后的回调函数

table.render({elem: '#data_grid'//,width: 900//,height: 274,cols: [[ //标题栏{field: 'id', title: 'ID', width: 80, sort: true},{field: 'username', title:'用户名',width: 100} //空列,{field: 'password', title: '密码', width: 120},{field: 'gender', title: '性别', width: 150},{field: 'nichen', title: '昵称', width: 150},{field: 'birthday', title: '出生年月', width: 120},{fixed: 'right', width: 215,align:'center', toolbar: '#barDemo'}]],url:url,skin: 'row' //表格风格,even: true,page: true //是否显示分页,limits: [3,5,10],limit: 5 //每页默认显示的数量,done:function(res){userPage.data = res.data;}//,loading: false //请求数据时,是否显示loading}); 

根据条件查询,表格异步刷新,where为附带参数

$('#sub_query_form').on('click',function () {var queryPo = page.formToJson($('#query_form').serialize());var table = layui.table;table.reload('data_grid', {url: '/getUserList.action',page:{curr:1  //从第一页开始
            },method:'post',where:{queryStr:queryPo},done:function (res) {userPage.data = res.data;}});}); 

将x-www-form-urlencoded转化为json字符串

formToJson:function (data) {data=data.replace(/&/g,"\",\"");data=data.replace(/=/g,"\":\"");data="{\""+data+"\"}";return data;}

表格工具栏使用

1.首先在html里定义好按钮

<script type="text/html" id="barDemo"><a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="add">增加</a><a class="layui-btn layui-btn-xs" lay-event="detail">查看</a><a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a><!-- 这里同样支持 laytpl 语法,如: -->{{#  if(d.auth > 2){ }}<a class="layui-btn layui-btn-xs" lay-event="check">审核</a>
        {{#  } }}
</script>

2.js内引用

layui.use('table', function(){var table = layui.table;userPage.tab('/getUserList.action');//监听工具条table.on('tool(demo)', function(obj){var data = obj.data;userPage.data = obj.data;if(obj.event === 'detail'){layer.msg('ID:'+ data.id + ' 的查看操作');}else if(obj.event === 'del'){layer.confirm('真的要删除这条记录么',{icon: 3, title:'确定删除'}, function(index){obj.del();$.post('/doDelete.action?id='+data.id,function (res) {userPage.reload(res);});layer.close(index);});}else if(obj.event === 'add'){layer.open({title:'增加窗口',content:userPage.template,yes:function () {var user = page.formToJson($('#layer_form').serialize());var data = 'user='+user;$.post('/doAdd.action',data,function (res) {userPage.reload(res);});layer.closeAll();}})}else if(obj.event === 'edit'){layer.open({title:'编辑窗口',content:userPage.template,success:function () {$('input[name="id"]').val(userPage.data.id);$('input[name="username"]').val(userPage.data.username);$('input[name="password"]').val(userPage.data.password);$('input[name="gender"]').val(userPage.data.gender);$('input[name="nichen"]').val(userPage.data.nichen);$('input[name="birthday"]').val(userPage.data.birthday);},yes: function(){var mgUser = page.formToJson($('#layer_form').serialize());var data = 'user='+mgUser;$.post('/doEdit.action',data,function (res) {userPage.reload(res);});layer.closeAll();}})}});
});

二.服务端部分 

Controller层需要接收以下参数,page,limit,要查询的条件,返回值根据layui文档给出的默认返回值

 @RequestMapping("/getUserList")@ResponseBodypublic PageList<MgUser> getUserList(@RequestParam(required = false,defaultValue = "1") int page,@RequestParam(required = false,defaultValue = "5") int limit,@RequestParam(required = false) String queryStr){QueryPo queryPo = null;if (!StringUtils.isEmpty(queryStr)){   //性别类型转换queryPo = JSONObject.parseObject(queryStr,QueryPo.class);if ("1".equals(queryPo.getGender())){queryPo.setGender("男");}if ("2".equals(queryPo.getGender())){queryPo.setGender("女");}}PageList pageList = new PageList();try {if (!StringUtils.isEmpty(queryPo)){ //中文字转码if(!StringUtils.isEmpty(queryPo.getKeywords())){queryPo.setKeywords(URLDecoder.decode(queryPo.getKeywords(),"utf-8"));}}List<MgUser> userList = userService.getUserList(page,limit,queryPo);   //根据条件查询分页数据
pageList.setCode("0");pageList.setMsg("ok");pageList.setData(userList);int count = userService.countUserByExample(queryPo);pageList.setCount(count);} catch (UnsupportedEncodingException e) {e.printStackTrace();pageList.setCode("-1");pageList.setMsg("数据获取异常");return pageList;}return pageList;} 

Service层根据条件查询并分页

public List<MgUser> getUserList(int page , int limit, QueryPo queryPo) {MgUserExample userExample = new MgUserExample();MgUserExample.Criteria criteria = userExample.createCriteria();if(!StringUtils.isEmpty(queryPo)){if (!StringUtils.isEmpty(queryPo.getGender())){criteria.andGenderEqualTo(queryPo.getGender());}if (!StringUtils.isEmpty(queryPo.getKeywords())){criteria.andUsernameLike("%"+queryPo.getKeywords()+"%");}}userExample.setStart((page-1)*limit);userExample.setLimit(limit);List<MgUser> mgUsers = userMapper.selectByExample(userExample);return mgUsers;} 

注意由于mybatis逆向工程生成的Example没有limit和page,所以需要自己加上

    private int start;private int limit;public int getStart() {return start;}public void setStart(int start) {this.start = start;}public int getLimit() {return limit;}public void setLimit(int limit) {this.limit = limit;}

接着修改Mybatis的mapper.xml,需要加上分页条件

<select id="selectByExample" resultMap="BaseResultMap" parameterType="com.wang.entity.MgUserExample" >select<if test="distinct" >distinct</if><include refid="Base_Column_List" />from mg_user<if test="_parameter != null" ><include refid="Example_Where_Clause" /></if><if test="orderByClause != null" >order by ${orderByClause}</if><if test="start !=0 or limit!=0">limit #{start},#{limit}</if></select>

 

转载于:https://www.cnblogs.com/wangxiayun/p/9145638.html

layui数据表格及分页相关推荐

  1. layui数据表格分页导出全部页面的数据到Excel表格中

    在使用layui数据表格进行分页显示时,可能需要导出数据到Excel表,可是直接使用table.exportFile却会导出的是已经渲染到表中的数据,这时就会发现问题,导出的数据只是分页表格数据中的一 ...

  2. layui数据表格(一:基础篇,数据展示、分页组件、表格内嵌表单和图片)

    表格展示神器之一:layui表格 前言:在写后台管理系统中使用最多的就是表格数据展示了,使用表格组件能提高大量的开发效率,目前主流的数据表格组件有bootstrap table.layui table ...

  3. java实现layui静态表格分页,layui——数据表格分页实例

    layui实现数据表格table分页功能,异步加载,表格渲染.总体流程:layui的数据表格设置分页参数开启可以从请求中看到如下图,所以我们需要在后端控制器接收分页数据page和limit进行操作,下 ...

  4. php分页显示数据表格显示,php+layui数据表格实现数据分页渲染代码

    一.html 二.js 说明:需要引入layui中的table和laytpl模板引擎,laytpl可以自定义事件及自定义数据字段等 查看详情 {{# if (d.hotcake === '超级爆款') ...

  5. layui数据表格分页无法正常显示

    layui数据表格分页无法正常显示 应该先利用layui table中的parseData方法手动将数据切片分页,代码如下,要点是parseData: function(res){}中的方法,对从ur ...

  6. Thinkphp+layui数据表格实现表格分页

    项目场景:Thinkphp+layui数据表格实现表格分页 提示:thinkphp+layui数据表格分页,需要服务器端配合.之前在百度上一通乱搜也没找到解决方案. 问题描述 提示:这里描述项目中遇到 ...

  7. layui数据表格数据绑定加分页代码

    layui数据表格数据绑定加分页代码 最近使用layui数据表格感觉特别方便,一段代码直接绑定数据加上分页加载数据 直接上代码 layui.use(['table', 'laypage'], func ...

  8. layui数据表格table在选项卡tabs中分页条不显示的解决

    layui数据表格table在选项卡tabs中分页条不显示的解决 解决:渲染后重新设置高度:$(".layui-table-box").css("height" ...

  9. layui 数据表格 分页 搜索 checkbox 缓存选中项数据

    在做数据表格的时候遇到了很多坑, 今天整理一下方便以后使用. 主要功能是使用数据表格, 做分页,做搜索,  还有checkbox,  支持全选. 当选中一些数据的时候, 数据切换页面数据在切换回来后, ...

最新文章

  1. 泛型推断类型不符合上限
  2. Android之9图的制作
  3. Maven私服安装及配置——(十二)
  4. 4.4MSSQLServer常用版本介绍
  5. 雅虎开源发布/订阅消息平台Pulsar
  6. 粮草先行——Android折叠屏开发技术点番外篇之运行时变更处理原则
  7. php开发是可视的吗,javascript,html_Jquery判断页面元素是否在浏览器的可视区域内,javascript,html,css,html5 - phpStudy...
  8. Linux下如何搭建Java环境
  9. 2字节取值范围_Java注解-元数据、注解分类、内置注解和自定义注解|乐字节
  10. OLAP系统场景中,GaussDB(for MySQL)借助PQ+NDP让性能提升高达百倍
  11. CUDA入门2——获取显卡参数
  12. Dynamics crm2013 IFD部署后启用多组织
  13. 延云YDBYA100安装部署文档
  14. ADAS/AD控制器模块开发11 - UDS与配置、校准
  15. 【linux】oracle数据库cpu占用过高排查方案
  16. Pandas数据分析实战1——淘宝粽子行业分析
  17. D2. Coffee and Coursework (Hard Version)(思维+贪心)
  18. 一个互联网app的开发设计(技术选型和架构)
  19. 计算机专业要不要考普通话证书,大一新生:这3个证书一定要考!不考后悔,越拖越难考?...
  20. 单丝不成线,独木不成林

热门文章

  1. 如何使用python股票实时接口查出股票信息?
  2. 快手签名算法php,快手 sig(sign)签名算法 java版
  3. 开发自己的音乐网站(1)
  4. android我的世界连接pc,我的世界各平台联机方法 手机和电脑等联机教程_图文攻略_高分攻略_百度攻略...
  5. java 滚动加载数据_[Java教程]浏览器滚动条快到底部时自动加载数据
  6. 正则表达式 /\((.*)\)/ 的含义
  7. 时间无情流逝,同学有情长存
  8. 推广自己博客关键字到首页其实也是浮云
  9. 【西藏冒险王】的事谢广坤早就看透了!
  10. HashMap、创建并遍历HashMap集合、LinkedHashMap