layui表格使用自定义模板templet

article/2025/8/27 6:16:54

前言

在前文 layui+springboot实现表格增删改查 中,我们展示了如何使用layui将数据库数据渲染到前端表格中,但现在问题来了,如果不加特殊处理,前端表格直接显示数据库存储信息是不合适的,例如数据库有一个类型字段:0和1,0表示国产,1表示进口,前端显然不能直接显示0和1,而是应该根据后端返回的数字进行判断,展示相应的内容。

layui table的自定义模板功能能非常方便地解决这个问题,首先看下效果图。

数据库数据:
在这里插入图片描述
前端展示:
在这里插入图片描述
甚至,更复杂一些,将select下拉选择框和switch开关集成到table表格里(具体的实现请见https://blog.csdn.net/mu_wind/article/details/106598666):
在这里插入图片描述
后端返回的完整数据:

{{"msg": "操作成功!","code": "0","data": [{"id": 1,"name": "iPhone","type": "0","price": 6000.0,"size": 55,"status": 0,"description": "说明"},{"id": 2,"name": "watch","type": "1","price": 500.0,"size": 35,"status": 1,"description": "说明"},{"id": 3,"name": "television","type": "1","price": 1000.0,"size": 90,"status": 1,"description": "说明"},{"id": 4,"name": "computer","type": "1","price": 4500.0,"size": 60,"status": 1,"description": "说明"}],"count": 4
}}

方式一:函数转义

所谓函数转义,就是在表格cols的对应列中直接写一段函数:

table.render({elem: '#goods_table', id: 'goodsReload', url: '/test/getGoodsInfo', method: 'get', title: '用户表', toolbar: '#goods_headerBar' //开启工具栏,此处显示默认图标,可以自定义模板,详见文档, cols:[[{type: 'checkbox', fixed: true},{field: 'type',title: '类&emsp;型',width: 100,align: 'center',// data就是行数据:{"id": 1,"name": "iPhone","type": "1","price": 6000.0,"size": 55,"status": 0,"description": "说明"}templet: function (d) {var type = d.type;if (type == 0) {return '<font color="#0000FF">国&ensp;产</font>';} else {return '<font color="#5FB878">进&ensp;口</font>';}}}// 其他行省略,可去【前端系列-3】获得完整代码{fixed: 'right',title: '操作',toolbar: '#goos_lineBar',align: 'center',width: 120,style: 'font-size:13px'}]]
});

这样的写法,简单直接,缺点是复用性差,有可能导致代码冗余。

方式二:绑定模版选择器

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

<script type="text/html" id="typeTpl">{{#  if(d.type ==0 ){ }}<p style="color: #0000FF">&ensp;</p>{{#  } else { }}<p style="color: #00FF00">&ensp;</p>{{#  } }}
</script>

table.render中的对应列templet内容中直接引用上面的模板即可

table.render({elem: '#goods_table', id: 'goodsReload', url: '/test/getGoodsInfo', method: 'get', title: '用户表', toolbar: '#goods_headerBar' //开启工具栏,此处显示默认图标,可以自定义模板,详见文档, cols:[[{type: 'checkbox', fixed: true},{field: 'type',title: '类&emsp;型',width: 100,align: 'center',templet: '#typeTpl'}// 其他行省略,可去【前端系列-3】获得完整代码{fixed: 'right',title: '操作',toolbar: '#goos_lineBar',align: 'center',width: 120,style: 'font-size:13px'}]]
});

这样的话,如果有多处表格使用同一个模板,代码复用性将得到加强。

还有一种方式:直接赋值模版字符

templet: '<div><a href="/detail/{{d.id}}" class="layui-table-link">{{d.title}}</a></div>'注意:这里一定要被一层 <div></div> 包裹,否则无法读取到模板

http://chatgpt.dhexx.cn/article/TTncefZr.shtml

相关文章

layui 动态表格 templet模板函数

1&#xff0c;需求说明 关于动态标题栏的相关知识跳转链接&#xff1a;layui 静态 动态复杂多表头 2&#xff0c;尝试的用法 var chenbenkemuList${chenbenkemuList};var columnAry[]for (var i 0; i < chenbenkemuList.length; i) {var onechenbenkemu chenbenkemuList[…

layui:templet

在使用layui-table的时候,由于它每次都是动态刷新,无法保存我们做的一些页面上元素的修改。 我希望我设置完默认地址之后,下次访问应该是和这次一样变成了灰色的。 这个时候要用到templet,官方文档中的{{d}}就是table获取回来的data,直接做判断,设置样式即可! <

LayUi 之 templet

templet是什么东西&#xff1f; 我们都知道LayUi中有模板&#xff0c;就是把我们需要展示的东西放在模板中展示&#xff0c;你就比如我们想要展示一些数据&#xff0c;但是这些数据不是我们想要的数据或者不是我们想要的样子&#xff0c;这个时候我们可以通过模板前端更改一下…

Jstack线程状态BLOCKED/TIMED_WAITING/WAITING解释

一、线程5种状态 1.新建状态&#xff08;New&#xff09; 新创建了一个线程对象。 2.就绪状态&#xff08;Runnable&#xff09; 线程对象创建后&#xff0c;其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中&#xff0c;变得可运行&#xff0c;等待获取C…

java线程状态(六种五种)

java线程的状态常见的有两种说法&#xff0c;一种是将其分为6种一种是分为5种 1. 六种&#xff1a; 划分依据&#xff1a;主要是从java代码的角度来进行划分。 1. 新建状态 &#xff1a; 使用new关键字创建一个thread对象&#xff0c;刚刚创建出的这个线程就处于新建状态。在…

统计Java进程中的线程状态(jstack+linux)

统计Java进程中的线程状态 第一步&#xff1a;查看Java进程ID 第二步&#xff1a;使用jstack命令dump线程信息&#xff0c;看看pid45890进程中的线程都是什么状态 /usr/local/java/jdk1.8.0_144/bin/jstack 84976 >/opt/test.dump第三步&#xff1a;统计所有线程分别处于什…

线程状态图

1. 新建状态(New) : 线程对象被创建后&#xff0c;就进入了新建状态。例如&#xff0c;Thread thread new Thread()。 2. 就绪状态(Runnable): 也被称为“可执行状态”。线程对象被创建后&#xff0c;其它线程调用了该对象的start()方法&#xff0c;从而来启动该线程…

Java 线程状态之 TIMED_WAITING

定义 一个正在限时等待另一个线程执行一个动作的线程处于这一状态。 A thread that is waiting for another thread to perform an action for up to a specified waiting time is in this state. 更详细的定义还是看 javadoc&#xff08;jdk8&#xff09;&#xff1a; 带指定…

jstack 线程状态

转自 http://www.cnblogs.com/nexiyi/p/java_thread_jstack.html jstack 线程状态 jstack 线程里&#xff0c;值得关注的线程状态有&#xff1a; 死锁&#xff0c;Deadlock&#xff08;重点关注&#xff09; 执行中&#xff0c;Runnable 等待资源&#xff0c;Waiting on co…

Java 中线程状态有哪些?

写在前面 本文隶属于专栏《100个问题搞定Java并发》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和文献引用请见100个问题搞定Java并发 解答 线程的状态在java中有明确…

理解Java线程状态(6种,6种,6种)

什么是线程 线程具有许多传统进程所具有的特征&#xff0c;故又称为轻型进程(Light—Weight Process)或进程元&#xff1b;而把传统的进程称为重型进程(Heavy—Weight Process)&#xff0c;它相当于只有一个线程的任务。在引入了线程的操作系统中&#xff0c;通常一个进程都有…

图文详解jvm中的线程状态

本文使用下面这张图详细介绍JAVA线程的六种状态 JAVA线程的六种状态详解 在java.lang.Thread类中&#xff0c;定义了线程的以下六种状态(同一个时刻线程只能有一种状态) NEW&#xff08;新建&#xff09; 这个状态是指线程刚创建&#xff0c;但还未调用线程的start()方法进…

python封装线程类(启动、终止、查看线程状态)

文章目录 一、简单说明二、实现步骤三、测试 一、简单说明 将启动、终止和查看线程状态的方法封装成类声明时传入要启动的方法通过 start、stop 和 state 执行启动、终止 和 查看状态 二、实现步骤 # encoding: utf-8import time import threading import inspect import ct…

一文搞懂线程世界级难题——线程状态到底是6种还是5种!!!

背景 先来解答一个世界级难题&#xff1a; java线程有多少种状态&#xff1f; 答案是6种&#xff01;&#xff01;&#xff01; 那为什么有的地方说是5种呢&#xff0c;那这一定是将操作系统层面的线程状态搞混了。 下面我们就分别介绍一下java线程的6种状态以及操作系统层…

Java线程状态

线程跟人类一样拥有自己的生命周期&#xff0c;一条线程从创建到执行完毕的过程即是线程的生命周期&#xff0c;此过程可能在不同时刻处于不同的状态&#xff0c;线程状态正是这小节的主题&#xff0c;线程到底有多少种状态&#xff1f;不同状态之间是如何转化的&#xff1f; …

java线程状态与操作系统线程状态的关系

清楚的理解和认知线程状态是java多线程的基础&#xff0c;多线程本质上其实就是管理多个线程的状态&#xff0c;以期在保证线程安全的情况下获得最佳的运行效率&#xff08;发挥cpu的最佳效能&#xff09; 首先列举几个容易混淆的线程状态问题文末进行解答&#xff1a; 1Java线…

Java 如何获取线程状态呢?

下文笔者讲述Java中获取线程状态的方法分享,如下所示: java线程状态的简介 Java中的线程整个生命周期中分为5种状态:1.新建状态(New):新建的线程都为此状态2.就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法该状态的线程在"可运行线程池"中,…

【线程】详解线程状态(到底是五种还是六种)

首先我们要知道&#xff0c;在传统&#xff08;操作系统&#xff09;的线程模型中线程被分为五种状态 在java线程中&#xff0c;线程被分为六种状态 传统线程模型&#xff08;操作系统&#xff09;中线程状态 线程的五种状态&#xff1a; 1.新建&#xff08;new&#xff09; 创…

Java线程状态RUNNABLE详解

Java虚拟机层面所暴露给我们的状态&#xff0c;与操作系统底层的线程状态是两个不同层面的事。具体而言&#xff0c;这里说的 Java 线程状态均来自于 Thread 类下的 State 这一内部枚举类中所定义的状态&#xff1a; 什么是 RUNNABLE&#xff1f; 直接看它的 Javadoc 中的说明…

Java多线程 - 线程状态

线程状态 五个状态&#xff1a;新生、就绪、运行、死亡、阻塞 停止线程 不推荐使用JDK提供的stop()、destroy()方法【已弃用】推荐线程自己停止建议用一个标志位进行终止变量&#xff0c;到flagfalse&#xff0c;则终止线程运行 public class StopDemo implements Runnab…