layer学习笔记之table表格引入数据实现分页

LayUI是一款免费,开源,轻量级的前端cms框架,适用于企业后端,能快速上手开发,集成了常用的组件,还有完善的文档和社区。

最近一直在学习使用layer的layui框架技术,这个主要表现在于弹出层的使用,但是layer页面效果使用也是非常好用的。

之前写一个一个关于数据的table表格显示 并带有分页功能,实现过程遇到了很多问题,现抽空总结一下。

使用之前请先详细阅读layer的文档http://www.layui.com/doc/modules/layer.html

首先下载最新版的layui文件:

下载完之后引入到自己的项目中,放在根目录的下面某一个地方:

然后在你要用的jsp页面上引入相应的js和css:

此时路径应为你放至layui文件包的路径注意路径不要引入错误!

简单的一个demo页面:

页面显示为:

在此讲一下传入的数据格式

{"code":0,"msg":"","count":29,"data":[{"id":10000,"username":"user-0",...........

这个是你后台需要返回的数据格式,可以自己定义:http://www.layui.com/doc/modules/table.html#async

我自己定义方式为:

首先创建一个返回类型实体类: ResultUtil :

写相应的get,set方法,然后按照layui定义的返回类型格式写这个方法的实现类:

其中object就是你要在表格中显示的数据count为数据的条数,然后写相应的方法,sql语句 这些都很简单,在此不多说,写完之后

在控制层方法中也就是前台页面url这个路径的方法中调用此方法,注意方法的接口http请求类型,默认:get

然后在前台页面中使用:

红圈圈中的这个方法在页面控制台可以看到你传入的数据。你传入的data数据一定要和你页面上写的数据一致。

这个是简单的layui展示table表格的实现过程。

接下来讲一讲分页

layui有自带的分页功能,样式还是很好看的,开启分页的方法:http://www.layui.com/demo/table/page.html

开启之后可以自定义分页的样式:http://www.layui.com/demo/table/resetPage.html

此时分页包括分页的样式都已经弄好,但是问题就是我们页面的数据还是查出来的那么多条并没有根据layui定义分页去显示,这个怎么去解决?

这个问题就是说的重点:实现table表格数据的分页

因为静态json不支持表格自带分页,所以我们要在后台定义好分页的数据传入前台页面。表格设置了page:true
之后,就证明分页功能启用了,剩下的就是后台controller中获得默认传过去的limit和page两个个参数,根据参数计算获得当前页显示的数据,然后把数据打包为指定的json格式设置返回值就ok了

其实现方法有两种

第一种:自定义原生的sql语句分页:在前台页面配置的table中开启分页以后访问url路径的时候会传过去两个参数,page和limit。page为当前的页码,limit为你定义的分页条数,这样可以在后台方法中

接收这两个参数:

接收之后我们要对page进行重新定义,方便于sql语句的分页

这样之后调用service层方法到mapper文件的sql语句可以直接这样写(demo示例):

select 数据,数据,数据,......   from 表名 limit #{pages,jdbcType=INTEGER},#{limit,jdbcType=INTEGER}

这样之后 页面就实现分页了,很简单的。

接下来说说第二中更为方便的写法

就是使用框架的配置:

首先引入相应的jar包:

然后在mybatis-config.xml中配置分页:

请注意上图中我用红色圈圈中的两个参数,这个两个很重要,在dao层写接收page和limit两个参数的时候需要用到

不管接受到的参数为什么 注解中一定要用到配置中设定的参数数据,这样框架才会帮你解析。

配置成功之后 控制层后台只需接受这两个参数,sql语句只需写个简单的查询就可以了,框架会自动帮你实现分页。

至此分页讲完。

接下来额外补充一下页面数据的转换

比如说页面上展示的是个人信息:性别字段数据表中存储的是int类型0或者1  但是在页面上需要用男和女展示出来,有两种实现方式;

第一中很简单  直接在后台service实现方法中给替换成相应的类型,我主要说第二中页面中替换:

首先请先仔细阅读官方开发文档:http://www.layui.com/doc/modules/table.html#cols

请注意这个字段:

点击详见自定义模板:http://www.layui.com/doc/modules/table.html#templet

实现:

在table定义中需要转义的字段后面加上templet这个参数(模板选择器)

然后写templet对应的模板,它可以存放在页面的任意位置。模板遵循于 laytpl 语法,可读取到返回的所有数据:

注意两者的对应关系:

模板中第一个个我只写了一个“男”,这个只是将数字1转为为男在页面上显示,第一个我加了一个span,这个不仅仅是将0替换成“女”,而且还改变了其颜色。

只要认真阅读了layui开发文档这样都可以实现,接下来我说一个layui文档中没有详细说明百度资料也很少的数据转换例子:

将后台传过来的时间戳转为为时间显示:一般如果table表格中设计时间这个列表:后台传入前台都会传过来一串数字:

我在layui官网文档上没有看见介绍转换时间的,只有在layui的table表头参数一览表中的

中提及了一下使用自定义模板去转换,但是具体怎么转换并没有详细说明,百度网上的例子也非常少,经过长时间查找,终于有所收获:

首先在前台页面上定义一个转换时间的js方法

然后在需要转换时间的表头列上加上参数:templet去调用这个时间转换的方法

这样转换完之后为:

这种格式。如果不满足请自己查找资料更换。

这些是在学习layer.layui中遇到的问题总结一下,后续慢慢添加相关问题解决方案。

原文地址:https://www.cnblogs.com/ka-bu-qi-nuo/p/8405774.html

时间: 2024-10-09 03:36:46

layer学习笔记之table表格引入数据实现分页的相关文章

Linux程序设计学习笔记----网络编程之网络数据包拆封包与字节顺序大小端

网络数据包的封包与拆包 过程如下: 将数据从一台计算机通过一定的路径发送到另一台计算机.应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation),如下图所示: 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据包(packet),在链路层叫做帧(frame).数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理. 上图对应两台计算机在同一网段中的情况,

sqlite学习笔记6:更新表数据

一 条件判断 在SQL中条件判断使用where,相当于其他变成语言中的if,基本用法如: SELECT column1, column2, columnN FROM table_name WHERE [condition] 另外,SQL支持数学运算,逻辑运算,位于运算等等,均可放在WHERE子句中. 二 更新表 基本语法如下: UPDATE table_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE

《MyCat 学习笔记》第八篇.数据分片 之 求摸运算分片

1 应用场景 Mycat 自带了多套数据分片的机制,其实根据数值取摸应该是最简单的一种. 优点:数据离散概率较为平均,可以有效的提高应用的数据吞吐. 缺点:比较明显,后期数据运维与迁移比较困难.好在Mycat有对应的解决方案,具体后期验证或可直接参考Mycat权威指南相应章节. 2 环境说明 参考  <MyCat 学习笔记>第六篇.数据分片 之 按月数据分片  http://www.cnblogs.com/kaye0110/p/5160826.html 3 参数配置 3.1 server.xm

Accelerated C++学习笔记5—&lt;组织程序和数据&gt;

第4章  组织程序和数据 从前面的学习中,我们可以发现程序并不是我们所想的那么简短,他们都有一个共同的特性,那就是 1)都能解决某些特定类型的问题 2)与其他的大多数工具都互相独立 3)都具有一个自己的名称 C++中提供两种基本的方法来让我们组织大型的程序,函数(子程序)和数据结构. 1.组织计算 1)计算总成绩 子函数grade <span style="font-family:KaiTi_GB2312;">//根据学生的期中考试.期末考试.家庭作业成绩来计算总成绩 do

【Spring学习笔记-MVC-4】返回Json数据-方式2

摘要 本文讲解另外一种利用spring MVC返回json数据的方法. 前文回顾 在<[Spring学习笔记-MVC-3]返回Json数据-方式1>中介绍了通过: @ResponseBody声明返回值: 配置<mvc:annotation-driven />: 来返回json数据.效果如下:   ==>, 从上面的效果看,只能返回一个对象,不能返回多个对象,不能做到形如下图的返回结果, 存在局限性(可能可以返回多个,自己不知道如何实现). 下面介绍的方式2,利用spring

C++学习笔记之由文本文件读取数据到vector模板建立的二维数组 并存储为新的文本文件

阅读本文可首先参考: C++学习笔记之输入.输出和文件 测试数据: 1 /*读取txt文件到二维数组*/ 2 #include <iostream> 3 #include <fstream> 4 #include <vector> 5 #include <string> 6 7 using namespace std; 8 9 typedef vector< vector<int> > D2array; //二维数组 10 typed

UI学习笔记---第十四天数据持久化

一.沙盒机制 每个应用程序位于文件系统的严格限制部分 每个应用程序只能在为该程序创建的文件系统中读取文件 每个应用程序在iOS系统内斗放在了统一的文件夹目录下 沙盘路径的位置 1. 通过Finder查找程序沙盘相对路径 ~/Library/Application Support/iPhone Simulator 2. 通过代码查找程序沙盘相对路径 NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory,NSSearc

IOS图层Layer学习笔记(二)—— CALayer(上)

IOS图层Layer学习笔记(二)-- CALayer(上) 简介 CALayer是所有图层的基类.主要是一些基本显示属性(位置.锚点.颜色.透明度等).层次关系(子图层和父图层).基本动画等. 接下来分别从常用属性.类方法和实例方法来介绍CALayer的使用.顺序是按头文件的排序来. 常用属性 bounds CGRect,Animatable.控制layer的大小,其中x和y无效果,默认是(0,0). position CGPoint,Animatable.控制layer锚点在父图层的位置.

前端点击删除按钮删除table表格的数据

1 table.on('tool(hostTable)', function (obj) { 2 var data = obj.data;//须写 3 if (obj.event === 'del') { 4 var parents = $(this).parents('.elementClass'); 5 operateId = $(parents).attr('id'); 6 layer.confirm('确认删除么', function (index) { 7 1.找到删除按钮所在的父元素