lyaui之数据表格的简单使用

news/2024/5/21 5:14:32/文章来源:https://blog.csdn.net/weixin_42949219/article/details/136341919

lyaui之数据表格的简单使用

这是从lyaui官网获取的示例,更为详细的解释或者其他的组件使用可以去官网查看:
官网示例:https://www.layuicdn.com/docs/v2/demo/table.html
官网文档:https://www.layuicdn.com/docs/v2/docs/index.htm
在这里插入图片描述

示例代码

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>示例演示</title><meta name="renderer" content="webkit"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="viewport" content="width=device-width, initial-scale=1"><!-- 注意:项目正式环境请勿引用该地址 --><link href="//www.layuicdn.com/layui-v2.7.6/css/layui.css" rel="stylesheet">
</head>
<body><table class="layui-hide" id="test" lay-filter="test"></table><script type="text/html" id="toolbarDemo"><div class="layui-btn-container"><button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button><button class="layui-btn layui-btn-sm" lay-event="getData">获取当前页数据</button><button class="layui-btn layui-btn-sm" lay-event="isAll">是否全选</button><button class="layui-btn layui-btn-sm layui-bg-blue" id="reloadTest">重载测试 <i class="layui-icon layui-icon-down layui-font-12"></i></button><button class="layui-btn layui-btn-sm layui-btn-primary" lay-event="multi-row">多行</button><button class="layui-btn layui-btn-sm layui-btn-primary" lay-event="default-row">单行</button><button class="layui-btn layui-btn-sm" id="moreTest">更多测试 <i class="layui-icon layui-icon-down layui-font-12"></i></button></div>
</script><script type="text/html" id="cityTpl"><select id="demoCity1" class="layui-border" lay-ignore><option value="浙江杭州">浙江杭州</option><option value="江西南昌">江西南昌</option><option value="湖北武汉">湖北武汉</option></select>
</script><script type="text/html" id="barDemo"><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>
</script>     <!-- 注意:项目正式环境请勿引用该地址 -->
<script src="//www.layuicdn.com/layui-v2.7.6/layui.js"></script><script>
layui.use(['table', 'dropdown'], function(){var table = layui.table;var dropdown = layui.dropdown;layer.msg('本示例演示的数据为静态模拟数据,<br>实际使用时换成您的真实接口即可。', {closeBtn: 1,icon: 6,time: 21*1000,offset: '21px'});// 创建渲染实例table.render({elem: '#test',url:'../static/json/table/demo1.json' // 此处为静态模拟数据,实际使用时需换成真实接口,toolbar: '#toolbarDemo',defaultToolbar: ['filter', 'exports', 'print', {title: '帮助',layEvent: 'LAYTABLE_TIPS',icon: 'layui-icon-tips'}],height: 'full-200' // 最大高度减去其他容器已占有的高度差,cellMinWidth: 80,totalRow: true // 开启合计行,page: true,cols: [[{type: 'checkbox', fixed: 'left'},{field:'id', fixed: 'left', width:80, title: 'ID', sort: true, totalRowText: '合计:'},{field:'username', width:80, title: '用户'},{field:'level', width:80, title: '级别',templet: function(row){if(row.username=="李白"){return "诗仙";}else{return "诗人";}}},{field:'email', title:'邮箱 <i class="layui-icon layui-icon-email"></i>', hide: 0, width:150, edit: 'text'},{field:'sex', width:80, title: '性别', sort: true},{field:'city', width:115, title: '城市', minWidth:115, templet: '#cityTpl', exportTemplet: function(d, obj){//console.log(obj)// 处理该字段的导出数据var td = obj.td(this.field); //获取当前 tdreturn td.find('select').val();}},{field:'sign', title: '签名', edit: 'textarea', minWidth: 260, style: '-moz-box-align: start;'},{field:'experience', width: 100, title: '积分', sort: true, totalRow: '{{= d.TOTAL_NUMS }} 😊'} ,{field:'checkin', title:'打卡', width: 100, sort: true, totalRow: '{{= parseInt(d.TOTAL_NUMS) }} 次'},{field:'ip', title:'IP', width: 120},{field:'joinTime', title:'加入时间', width: 120},{fixed: 'right', title:'操作', width: 125, minWidth: 125, toolbar: '#barDemo'}]],done: function(){var id = this.id;// 重载测试dropdown.render({elem: '#reloadTest' //可绑定在任意元素中,此处以上述按钮为例,data: [{id: 'reload',title: '重载'},{id: 'reload-deep',title: '重载 - 参数叠加'},{id: 'reloadData',title: '仅重载数据'},{id: 'reloadData-deep',title: '仅重载数据 - 参数叠加'}]// 菜单被点击的事件,click: function(obj){switch(obj.id){case 'reload':// 重载 - 默认(参数重置)table.reload('test', {where: {abc: '123456'//,test: '新的 test2'//,token: '新的 token2'}/*,cols: [[ // 重置表头{type: 'checkbox', fixed: 'left'},{field:'id', title:'ID', width:80, fixed: 'left', unresize: true, sort: true, totalRowText: '合计:'},{field:'sex', title:'性别', width:80, edit: 'text', sort: true},{field:'experience', title:'积分', width:80, sort: true, totalRow: true, templet: '<div>{{ d.experience }} 分</div>'},{field:'logins', title:'登入次数', width:100, sort: true, totalRow: true},{field:'joinTime', title:'加入时间', width:120}]]*/});break;case 'reload-deep':// 重载 - 深度(参数叠加)table.reload('test', {where: {abc: 123,test: '新的 test1'}//,defaultToolbar: ['print'] // 重载头部工具栏右侧图标//,cols: ins1.config.cols}, true);break;case 'reloadData':// 数据重载 - 参数重置table.reloadData('test', {where: {abc: '123456'//,test: '新的 test2'//,token: '新的 token2'},scrollPos: 'fixed'  // 保持滚动条位置不变 - v2.7.3 新增,height: 2000 // 测试无效参数(即与数据无关的参数设置无效,此处以 height 设置无效为例)//,url: '404'//,page: {curr: 1, limit: 30} // 重新指向分页});break;case 'reloadData-deep':// 数据重载 - 参数叠加table.reloadData('test', {where: {abc: 123,test: '新的 test1'}}, true);break;}layer.msg('可观察 Network 请求参数的变化');}});// 更多测试dropdown.render({elem: '#moreTest' //可绑定在任意元素中,此处以上述按钮为例,data: [{id: 'add',title: '添加'},{id: 'update',title: '编辑'},{id: 'delete',title: '删除'}]//菜单被点击的事件,click: function(obj){var checkStatus = table.checkStatus(id)var data = checkStatus.data; // 获取选中的数据switch(obj.id){case 'add':layer.open({title: '添加',type: 1,area: ['80%','80%'],content: '<div style="padding: 16px;">自定义表单元素</div>'});break;case 'update':if(data.length !== 1) return layer.msg('请选择一行');layer.open({title: '编辑',type: 1,area: ['80%','80%'],content: '<div style="padding: 16px;">自定义表单元素</div>'});break;case 'delete':if(data.length === 0){return layer.msg('请选择一行');}layer.msg('delete event');break;}}});},error: function(res, msg){console.log(res, msg)}});// 工具栏事件table.on('toolbar(test)', function(obj){var id = obj.config.id;var checkStatus = table.checkStatus(id);var othis = lay(this);switch(obj.event){case 'getCheckData':var data = checkStatus.data;layer.alert(layui.util.escape(JSON.stringify(data)));break;case 'getData':var getData = table.getData(id);console.log(getData);layer.alert(layui.util.escape(JSON.stringify(getData)));break;case 'isAll':layer.msg(checkStatus.isAll ? '全选': '未全选')break;case 'multi-row':table.reload('test', {// 设置行样式,此处以设置多行高度为例。若为单行,则没必要设置改参数 - 注:v2.7.0 新增lineStyle: 'height: 95px;' });layer.msg('即通过设置 lineStyle 参数可开启多行');break;case 'default-row':table.reload('test', {lineStyle: null // 恢复单行});layer.msg('已设为单行');break;case 'LAYTABLE_TIPS':layer.alert('Table for layui-v'+ layui.v);break;};});//触发单元格工具事件table.on('tool(test)', function(obj){ // 双击 toolDoublevar data = obj.data;//console.log(obj)if(obj.event === 'del'){layer.confirm('真的删除行么', function(index){obj.del();layer.close(index);});} else if(obj.event === 'edit'){layer.open({title: '编辑',type: 1,area: ['80%','80%'],content: '<div style="padding: 16px;">自定义表单元素</div>'});}});//触发表格复选框选择table.on('checkbox(test)', function(obj){console.log(obj)});//触发表格单选框选择table.on('radio(test)', function(obj){console.log(obj)});// 行单击事件table.on('row(test)', function(obj){//console.log(obj);//layer.closeAll('tips');});// 行双击事件table.on('rowDouble(test)', function(obj){console.log(obj);});// 单元格编辑事件table.on('edit(test)', function(obj){var field = obj.field //得到字段,value = obj.value //得到修改后的值,data = obj.data; //得到所在行所有键值var update = {};update[field] = value;obj.update(update);});
});
</script></body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_988146.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言——深度剖析数据在内存中的存储——第1篇——(第24篇)

坚持就是胜利 文章目录 一、数据类型详细介绍1、类型的基本归类&#xff08;1&#xff09;整型家族&#xff08;2&#xff09;浮点数家族&#xff08;3&#xff09;构造类型 &#xff08;自定义类型&#xff09;&#xff08;4&#xff09;指针类型&#xff08;5&#xff09;空类…

PHP项目中composer和Git的组合使用

highlight: 在国内由于众所周知的原因&#xff0c;composer的package可能无法访问&#xff0c;解决办法是使用中国的全镜像&#xff1a; composer config -g repositories.packagist composer http://packagist.phpcomposer.com 在需要使用composer package的地方创建composer…

小程序实现定位城市切换且城市根据首字母A-Z排序后端数据实现逻辑

场景&#xff1a; 话不多说后端提供数据实现步骤&#xff1a; 1.controller层 Api(tags {"[地区]-城市相关接口"}) RestController RequestMapping("region") Slf4j public class RegionController extends BaseController {Resourceprivate RegionServ…

9 款顶级 iPhone 系统修复软件,可修复各种 iPhone 软件问题

iOS的封闭性和纯粹性仍然无法让iPhone免受潜在风险的影响。iPhone 存在常见问题&#xff0c;包括iPhone/iPad 卡住 Apple 徽标、iOS 更新无法充电问题、iPhone 耳机问题等等。 通常&#xff0c;在这种情况下&#xff0c;您的 iPhone 数据可能无法访问&#xff0c;甚至面临很大…

爬虫IP代理池的搭建与使用指南

目录 一、爬虫IP代理池的重要性 二、搭建IP代理池 选择合适的代理IP源 搭建代理IP池服务器 实现代理IP的获取和更新 三、使用IP代理池 配置爬虫程序 调用代理IP池API 实现代理IP的自动切换 四、案例与代码 五、总结 随着互联网的迅猛发展&#xff0c;网络爬虫作为一…

用于制作耳机壳的倒模专用UV树脂有什么特点?

制作耳机壳的UV树脂耳机壳UV胶具有以下特点&#xff1a; 快速固化&#xff1a;UV树脂可以在紫外线的照射下迅速固化&#xff0c;大大缩短了制作时间。高硬度与高耐磨性&#xff1a;UV树脂具有较高的硬度和耐磨性&#xff0c;能够提供良好的保护效果。透明度高&#xff1a;UV树…

selenium爬虫

方法选择和安装包 在动态网页并且登陆过程中不需要进行过于复杂的密码验证的时候使用selenium会非常的方便 安装准备过程也相对简单&#xff1a; 下载对应版本的chromedriver并且通过如下代码找到路径下载到python所在的目录&#xff1a; import sysprint(sys.executable) …

普中51单片机学习(LCD1602)

LCD1602 1602液晶也叫1602字符型液晶&#xff0c;它是一种专门用来显示字母、数字、符号的点阵型液晶模块。它是由若干个5x7或者5x10的点阵字符位组成&#xff0c;每个点阵字符位都可以用显示一个字符&#xff0c;每位之间有一个点距的间隔&#xff0c;每行之间也有间隔&#…

Home Assistant:基于Python的智能家居开源系统详解

Home Assistant&#xff1a;基于Python的智能家居开源系统详解 在数字化和智能化的时代&#xff0c;智能家居系统成为了现代家庭的新宠。它们能够让我们更加方便地控制家中的各种设备&#xff0c;实现自动化和个性化的居住体验。其中&#xff0c;Home Assistant作为一款基于Pyt…

Linux Shell脚本练习(一)

一、 Linux下执行Shell脚本的方式&#xff1a; 1、用shell程序执行脚本&#xff1a; a、根据你的shell脚本的类型&#xff0c;选择shell程序&#xff0c;常用的有sh&#xff0c;bash&#xff0c;tcsh等 b、程序的第一行#!/bin/bash里面指明了shell类型的&#xff0c;比如#!/…

【行业科普】常见的边缘计算产品有哪些?主要应用于哪些场景?

之前的几期科普文给大家介绍了什么是边缘计算&#xff0c;以及它的优势、应用场景等内容。有兴趣的可以戳链接再了解一下。&#xff08;【行业科普】边缘计算有多强&#xff1f;一起了解它的优势及其5大典型应用&#xff01;&#xff09;今天我们再来了解一下常见的边缘计算产品…

C# 获取类型 Type.GetType()

背景 C#是强类型语言&#xff0c;任何对象都有Type&#xff0c;有时候需要使用Type来进行反射、序列化、筛选等&#xff0c;获取Type有Type.GetType, typeof()&#xff0c;object.GetType() 等方法&#xff0c;本文重点介绍Type.GetType()。 系统类型/本程序集内的类型 对于系…

2023年全国职业院校技能大赛中职组大数据应用与服务赛项题库参考答案陆续更新中,敬请期待…

2023年全国职业院校技能大赛中职组大数据应用与服务赛项题库参考答案陆续更新中&#xff0c;敬请期待… 武汉唯众智创科技有限公司 2024 年 2 月 联系人&#xff1a;辜渝傧13037102709 题号&#xff1a;试题01 模块三&#xff1a;业务分析与可视化 &#xff08;一&#xff0…

基于springboot+vue的党员教育和管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

SOLIDWORKS参数化设计之工程图更新 慧德敏学

SOLIDWORKS参数化设计不仅仅包括三维模型的参数化设计&#xff0c;还包括工程图的自动更新&#xff0c;由于自动出图仍然存在一定的局限性&#xff0c;不能完美的实现视图的布局及尺寸的标注&#xff0c;因此&#xff0c;现阶段采用的最多的仍然是图纸的更新&#xff0c;也就是…

创作纪念日【第1024天】的感触与期待

我的创作纪念日 1.机缘2.日常3.成就4.收获5.憧憬 1.机缘 2021年的04月份进入新行业了&#xff0c;公司不让用自己的电脑进行办公&#xff0c;也不能带自己的设备&#xff0c;之前记录的笔记查看不太方便&#xff0c;所以想着弄个博客&#xff0c;也尝试过云笔记&#xff0c;最…

Java根据excel模版导出Excel(easyexcel、poi)——含项目测试例子拿来即用

Java根据excel模版导出Excel&#xff08;easyexcel、poi&#xff09;——含项目测试例子拿来即用 1. 前言1.1 关于Excel的一般导出2.2 关于easyexcel的根据模版导出 2. 先看效果2.1 模版2.2 效果 3. 代码实现&#xff08;核心代码&#xff09;3.1 项目代码结构3.2 静态填充例子…

Springboot项目中定时任务的四种实现方式

文章目录 1. 使用Scheduled注解1.1 时间间隔执行1.2 固定时间点执行 2. 使用EnableScheduling注解启用定时任务3. 实现SchedulingConfigurer接口4. 使用Quartz框架4.1 配置QuartzScheduler4.2 定义Job类和Trigger类 5. 总结 在开发现代应用时&#xff0c;定时任务是一个非常常见…

Peter算法小课堂—动态规划

Peter来啦&#xff0c;好久没有更新了呢 今天&#xff0c;我们来讨论讨论提高组的动态规划。 动态规划 动态规划有好多经典的题&#xff0c;有什么背包问题、正整数拆分、杨辉三角……但是&#xff0c;如果考到陌生的题&#xff0c;怎么办呢&#xff1f;比如说2000年提高组的…

压缩视频大小的软件有哪些?5款软件推荐

压缩视频大小的软件有哪些&#xff1f;随着高清摄像设备的普及和网络速度的不断提升&#xff0c;视频文件变得越来越庞大&#xff0c;动辄数百兆甚至数GB的大小常常让用户在分享和存储时感到头疼。幸运的是&#xff0c;市面上有许多优秀的视频压缩软件可以帮助我们轻松应对这一…