• 一、介绍
  • 二、templet - 自定义列模板的 3 种方式
    • 1、方式一:绑定模版选择器。
    • 2、函数转义。自 layui 2.2.5 开始,templet 开始支持函数形式,函数返回一个参数 d,包含接口返回的所有字段和数据。如下所示:
    • 3、方式三:直接赋值模版字符。事实上,templet 也可以直接是一段 html 内容,如:
  • 三、第四种方法(解决Layui选项卡Tab和Layui模板laytpl冲突问题)

一、介绍

在默认情况下,单元格的内容是完全按照数据接口返回的content原样输出的,如果你想对某列的单元格添加链接等其它元素,你可以借助该参数来轻松实现。这是一个非常实用且强大的功能,你的表格内容会因此而丰富多样。

  • 类型:String,默认值:

templet 提供了三种使用方式,请结合实际场景选择最合适的一种:

  • 如果自定义模版的字符量太大,我们推荐你采用 方式一
  • 如果自定义模板的字符量适中,或者想更方便地调用外部方法,我们推荐你采用 方式二
  • 如果自定义模板的字符量很小,我们推荐你采用 方式三

二、templet - 自定义列模板的 3 种方式

1、方式一:绑定模版选择器。

    table.render({cols: [[{field:'title', title: '文章标题', width: 200, templet: '#titleTpl'} //这里的templet值是模板元素的选择器,{field:'id', title:'ID', width:100}]]});等价于:<th lay-data="{field:'title', width: 200, templet: '#titleTpl'}">文章标题</th><th lay-data="{field:'id', width:100}">ID</th>
  • 下述是templet对应的模板,它可以存放在页面的任意位置。模板遵循于 laytpl 语法,可读取到返回的所有数据
<script type="text/html" id="titleTpl"><a href="/detail/{{d.id}}" class="layui-table-link">{{d.title}}</a>
</script>注意:上述的 {{d.id}}、{{d.title}} 是动态内容,它对应数据接口返回的字段名。除此之外,你还可以读取到以下额外字段:序号:{{ d.LAY_INDEX }} (该额外字段为 layui 2.2.0 新增)由于模板遵循 laytpl 语法(建议细读 laytpl文档 ),因此在模板中你可以写任意脚本语句(如 if else/for等):
<script type="text/html" id="titleTpl">{{#  if(d.id < 100){ }}<a href="/detail/{{d.id}}" class="layui-table-link">{{d.title}}</a>{{#  } else { }}{{d.title}}(普通用户){{#  } }}
</script>

2、函数转义。自 layui 2.2.5 开始,templet 开始支持函数形式,函数返回一个参数 d,包含接口返回的所有字段和数据。如下所示:

table.render({cols: [[{field:'title', title: '文章标题', width: 200,templet: function(d){return 'ID:'+ d.id +',标题:<span style="color: #c00;">'+ d.title +'</span>'}},{field:'id', title:'ID', width:100}]]
});

3、方式三:直接赋值模版字符。事实上,templet 也可以直接是一段 html 内容,如:

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

三、第四种方法(解决Layui选项卡Tab和Layui模板laytpl冲突问题)

  • 在使用 选项卡Tabs 时,选项卡 与 laytpl 模板冲突,把 laytpl 模板当成字符串拼接进 我们要写的位置
//表格初始化
table.render({elem: '#LAY-user-table',cols: [[{field:'title', title: '文章标题', width: 200},{field:'id', title:'ID', width:100},{title: '操作', width: 300, align: 'center', fixed: 'right', toolbar: '#table-user-oper'}]]
});
  • 使用 方式一:绑定模版选择器。
<div class="layui-card-body" id="user-table"><table id="LAY-user-Table" lay-filter="LAY-user-Table"></table><script type="text/html" id="table-user-oper"><a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="detail">详情</a>{{#  if(d.user_id && d.status == 0) { }}<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit">编辑</a>{{#  } }}{{#  if(d.close_status == 0) { }}<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="close">关闭</a>{{#  } }}</script></div>

~~~~~ 分割线:方法 [ 四 ] ~~~~~

  • 如果自定义模板不能正常显示,也没有Js报错,建议采用 方式四
  • 方法四:在Js中拼接laytpl 模板字符串,再append追加到表格元素中
<div class="layui-card-body" id="user-table"><table id="LAY-user-Table" lay-filter="LAY-user-Table"></table><!--<script type="text/html" id="table-user-oper"><a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="detail">详情</a>{{#  if(d.user_id && d.status == 0) { }}<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit">编辑</a>{{#  } }}{{#  if(d.close_status == 0) { }}<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="close">关闭</a>{{#  } }}</script>--></div>
//组装表格每列的操作按钮
let laytplString ='<script type="text/html" id="table-user-oper">\<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="detail">详情</a>\\{{#  if(d.user_id && d.status == 0) { }}\<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit">编辑</a>\{{#  } }}\\{{#  if(d.close_status == 0) { }}\<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="close">关闭</a>\{{#  } }}\\<\/script>';$('#user-table').append(laytplString);

Layui选项卡Tab和Layui模板laytpl冲突问题相关推荐

  1. layui tab选项卡外部html页面,layui的Tab选项卡知识

    layui的公共类: lay-filter=" " 事件过滤器.你可能会在很多地方看到他,他一般是用于监听特定的自定义事件.你可以把它看作是一个ID选择器 layui的公共属性: ...

  2. layui tab html,layui竖版tab选项卡

    效果图: 代码: content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, m ...

  3. layui 利用tab选项卡实现:上一步,下一步操作

    虽然闲心大大已经关闭layui官网,可他一直是我们jQuery族的骄傲,话不多说了 效果如下: CSS /* 顺序tab */ .order_tab .layui-tab-title{border: ...

  4. layui选项卡嵌套选项卡_在ProtoPie中使用嵌套组件构建选项卡栏

    layui选项卡嵌套选项卡 One of the powerful features of ProtoPie is the ability to build fully portable and in ...

  5. layui选项卡切换及右键的动态操作(新增、切换、删除)

    先来看个效果图(文章底部有gitee地址) 要实现的效果: 选项卡的新增以及切换 选项卡刷新 选项卡各种删除:删除其他.删除右侧所有.删除所有 OK,直接上代码,一些引入文件就不写了,这里只列出主要的 ...

  6. layui中tab的切换

    layui中tab的切换,可使用element.tabChange(filter, layid);用于外部切换到指定的Tab项上,如:element.tabChange('demo', 'layid' ...

  7. layui选项卡切换刷新页面

    layui选项卡切换刷新页面 最近在改之前工作流页面,遇到选项卡切换刷新的问题 简单叙述需求: 1.在我的流程页面分别有:我的待办.我的已办.我发起的:三个页面 2.页面有"暂无数据&quo ...

  8. java+layui实现excel文件的模板下载和导入

    因为layui表格自带导出功能,所以就不再做导出功能 相关pom文件 <!--引入poi--> <dependency><groupId>org.apache.po ...

  9. java实现layui分页_基于LayUI分页和LayUI laypage分页的使用示例

    本文介绍了LayUI分页,LayUI动态分页,LayUI laypage分页,LayUI laypage刷新当前页,分享给大家,具体如下: 效果图: 一.引用js依赖 主要是jquery-1.11. ...

  10. layui.css如何使用,Layui新手教程

    Layui的学习 先说说为啥我接触到了layui,因为需要去参与做一个项目,被学长推荐去学习layui,用来处理一些前端的问题. Layui作为一个前端框架,用起来是十分的方便,并且官方文档中还有很多 ...

最新文章

  1. EonerCMS——做一个仿桌面系统的CMS(三)
  2. 抚州虚拟服务器,南通虚拟主机_南通云虚机_南通主机申请_南通网站空间_爱名网(www.22.cn)...
  3. 数字图像处理实验(5):PROJECT 04-01 [Multiple Uses],Two-Dimensional Fast Fourier Transform
  4. android播放mp3方法,Android之MediaPlayer播放音频与视频
  5. linux系统export,Linux入门进阶 - 如何在Linux中使用export命令
  6. 【做题记录】CF1451E2 Bitwise Queries (Hard Version)
  7. docker jenkins 公钥_代码自动发布docker(20.10.1)+k8s(1.20.1)
  8. 同一路由带参刷新,以及params和query两种方式传参的异同
  9. python描述器 触发事件_Python描述器引导(转)
  10. java发送qq邮件_「java发邮件」Java 通过SMTP实现发送QQ邮件 - seo实验室
  11. c++ const 修饰变量位置含义
  12. 计算机 行列式,行列式计算器
  13. docker搭建aria2离线下载,rclone自动上传
  14. 拼多多快捷回复怎么设置
  15. JSP——编写一个简单的JSP页面,显示英文字母表
  16. 图像处理学习笔记(一)
  17. Java中Arrays数组工具类的使用全解
  18. 网页的基本信息及组成HTML文件的基本结构
  19. 【Bug】无法访问Windows Installer服务
  20. 到底怎么买保险?附保险配置实战

热门文章

  1. 高手实战!Windows 7开机加速完全攻略
  2. Markdown符号
  3. Vim光标定位操作快捷键
  4. 基于Ogre1.9开发的3D场景编辑器
  5. 【vue】imitate-beautiful-thing
  6. Oracle,emc,emulex联合测试T10
  7. 怎样将PDF文件转换成word/Excel/PPT/TXT/图片?
  8. python 邮件抄送是什么意思_python 获取邮件中的发件人From、收件人To、抄送人Cc...
  9. 透明网桥(计算机网络)
  10. Photoshop插件-证件照-3寸裁剪-3寸排版-脚本开发-PS插件