位置: IT常识 - 正文

第一章 使用layui的表格和表单

编辑:rootadmin
第一章 使用layui的表格和表单 1.layui的引入1.1 本地引入

推荐整理分享第一章 使用layui的表格和表单,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

        首先下载layui,并将其放在自己的项目目录里。

(一种下载地址:Layui中文网 - 经典开源模块化前端 UI 框架(官方开发文档))

引入方式:

 

<!--css--><link rel="stylesheet" href="${pageContext.request.contextPath}/Layui/layui-v2.6.8/layui/css/layui.css" media="all"><!--js--><script src="${pageContext.request.contextPath}/Layui/layui-v2.6.8/layui/layui.js" charset="utf-8"></script>

 ${pageContext.request.contextPath} :部署的应用程序名,也就是tomcat里配置的 Application contexte。

1.2  CDN服务器

        不需要下载layui文件,能够直接引入,需要联网。

<link rel="stylesheet" href="https://layui.org.cn/res/layui/dist/css/layui.css" media="all"><script src="https://layui.org.cn/res/layui/dist/layui.js" charset="utf-8"></script>2. 使用layui2.1 加载模块

        使用layui模块的前提是要先引入相应的模块。

方法:layui.use([mods],callback)

如需要使用表格,表单,layui的时间样式,jquery和layui的弹出层组件layer:

layui.use(['table','layer','form','laydate'], function(){ var table = layui.table ,form = layui.form ,layer = layui.layer ,$ = layui.$ ,laydate = layui.laydate; })

var table = layui.table 就是换个名字。

 2.2 表格2.2.1  定义一个table<!--商品数据的表格--><div class="layui-container" > <table id="goodsTable" lay-filter="goodsTable"></table></div>

套不套div无所谓,但table的id和lay-filter一个都不能少,内容可以不一样;

lay-filter:事件过滤器,相当于是layui中的标签id,后面表格中的一些触发事件需要用到。

 2.2.2 渲染表格

        通过render()方法生成表格

//请求数据,渲染表格 table.render({ elem: '#goodsTable'//要渲染的表格的id ,url: '${pageContext.request.contextPath}/GoodsServlet/allGoods'//请求地址 ,cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增 ,page:true //是否开启分页 ,toolbar:"#goodsTableToolbar"//表头工具条 ,width:800 //表格宽度 ,limit:10 //初始每页的数据数 ,limits:[5,10,15,20,25] //选择每页数据数的下拉框的取值 ,cols: [[ {title:'多选',type:'checkbox',width: 60} ,{field:'goodsId', width:80, title: '商品编号', sort: true} ,{field:'goodsName', width:80, title: '商品名'} ,{field:'price', width:80, title: '价格', sort: true,} ,{field:'produceDate', width:120, title: '生产日期',sort: true,templet:function (d) { return layui.util.toDateString(d.produceDate,"yyyy-MM-dd") }} ,{field:'address', title: '产地', width: 80} //minWidth:局部定义当前单元格的最小宽度,layui 2.2.1 新增 ,{field:'categoryName', title: '分类', width:80} ,{title: '操作',toolbar:"#goodsTableRowToolbar",fixed:"right"}//行内工具条 ]] });

title:表格的列名

field:返回的数据的键,和数据访问层返回的数据要一致;

width:该列的宽度;

sort:开启排序

templet:自定义列模板,可以实现一些逻辑判断等,上面就是用于格式化日期,function中的d是被layui封装的一整行的数据,Object类型;

第一章 使用layui的表格和表单

toolbar: 用于给表格加上一些常用的按钮,需要提前定义好参数;

<!--表头工具条--><script type="text/html" id="goodsTableToolbar"> <div> <button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="goodsAdd">添加商品</button> <button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="goodsDeleteBatch">批量删除</button> </div></script><!--表内行工具条--><script type="text/html" id="goodsTableRowToolbar"> <div class="layui-btn-container"> <button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="goodsEdit">编辑</button> <button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="goodsDelete">删除</button> </div></script>

 这只是一种方式,要注意的是 lay-event 这个一定要,没有虽然可以成功引入但是没法使用,button就是点击事件无效。

 2.2.3 工具条事件(数据的删除,批量删除,修改和添加的弹出层) /*行工具条的点击事件*/ table.on("tool(goodsTable)",function (obj){ console.log(obj); switch (obj.event){ case "goodsEdit": $("#goodsForm")[0].reset(); $("#actionUrl").val("${pageContext.request.contextPath}/GoodsServlet/update"); form.val("goodsForm",obj.data); showGoodsForm(); break; case "goodsDelete": layer.confirm("确定要删除么?",function (index){ deleteGoods(obj.data.goodsId); layer.close(index); }) break; } })/*给表头工具条绑定事件*/ table.on("toolbar(goodsTable)",function (obj){ switch (obj.event) { case "goodsAdd": //重置表单内容 $("#goodsForm")[0].reset(); //设置表单的提交地址 $("#actionUrl").val("${pageContext.request.contextPath}/GoodsServlet/add"); showGoodsForm(); break; case "goodsDeleteBatch": var checkStatus = table.checkStatus('goodsTable'); var ids = []; for (let i = 0; i < checkStatus.data.length; i++) { ids.push(checkStatus.data[i].goodsId); } layer.confirm("确定要删除么?",function (index){ deleteGoods(ids.join(",")); layer.close(index); }) console.log(checkStatus); break; } });

格式固定,其中goodsTable 对应的是这个表格的 lay-filter;

obj.event 的取值是这个按钮的 lay-event,没有lay-event并不是取不到值这么简单。

 2.3 layui table的数据格式2.3.1 请求

         对于渲染表格,以及后续开启分页切换分页等操作,table请求的数据都会包含俩个默认的参数:

page:页码

limit:每页的数据数 

2.3.2 响应

        table默认需要的数据格式:

{ "code": 0, "msg": "", "count": 1000, "data": [{}, {}]}

code: 0 表示成功,其他失败

msg:提示信息

count:数据数

data: table的内容实际需要的数据

返回数据的方式和Ajax请求的方式一样,只是需要对数据进行加工 。

public class CommonResult { private Integer code; private String msg; private Integer count; private Object data; public CommonResult() { } public CommonResult(Integer code, String msg, Integer count, Object data) { this.code = code; this.msg = msg; this.count = count; this.data = data; } public static CommonResult success(){ return new CommonResult(0,"成功",null,null); } public static CommonResult success(Integer count,Object data){ return new CommonResult(0,"成功",count,data); } public static CommonResult fail(){ return new CommonResult(1,"失败",null,null); } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public Integer getCount() { return count; } public void setCount(Integer count) { this.count = count; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } @Override public String toString() { return "CommonResult{" + "code=" + code + ", msg='" + msg + '\'' + ", count=" + count + ", data=" + data + '}'; }}

对于响应的数据,如果是分页的情况,count是数据库中的所有数据的总条数;data是该页需要的数据数。

 2.4 form 表单

        主要用于数据的添加和修改,表单直接从layui上复制。

2.4.1 动态生成食品分类下拉框 /*加载商品分类的下拉框*/ $.get( "${pageContext.request.contextPath}/CategoryServlet/list", function (res){ if(res.code==0){ for (let i = 0; i < res.data.length; i++) { var cate = res.data[i]; $("#categoryId").append("<option value='"+cate.categoryId+"'>"+cate.categoryName+"</option>") } } }, "json" )2.4.2 渲染表单的日期框 laydate.render({ elem: "#produceDate" })

 使用laydate模块,#produceDate 是对应的input的id

2.4.3 弹出层 var goodsFormIndex; /*显示弹出层*/ function showGoodsForm(){ goodsFormIndex=layer.open({ type: 1, skin: 'layui-layer-rim', //加上边框 area: ['600px', '400px'], //宽高 content: $("#goodsForm") }); }

goodsFormIndex: layui每一个层调用都会返回一个index,通过这个index可以关闭对应的层;用layer.close(index);

 2.4.5 给表单赋值form.val("goodsForm",obj.data);

其中,goodsForm`是表单对应的 lay-filter的值;

obj.data是直接获取的触发修改的按钮所在行的全部数据也可以写成[键值对,...]手动赋值,和表单的name 对应。

2.4.6 表单的重置$("#goodsForm")[0].reset();

0:是唯一的下标,也是不能省略的。 

2.4.7 表单提交 /*form表单提交*/ form.on("submit(goodsBtnSubmit)",function (obj) { $.ajax({ type:"get", url:$("#actionUrl").val(), data:obj.field, success:function (res) { if(res.code==0){ layer.msg("成功"); layer.close(goodsFormIndex); $("#goodsForm")[0].reset(); //重新加载表格 table.reload("goodsTable",{ page:{curr:1} }) }else { layer.msg("失败"); } }, dataType:"json" }) })

固定的写法,其中goodsBtnSubmit是提交按钮的lay-filter ,要注意的是该按钮的type="button" 一定要写,因为button默认是submit,点击后会直接提交表单,导致页面刷新,obj可以随便写;

通过obj.field可以直接拿到表格中的数据。

本文链接地址:https://www.jiuchutong.com/zhishi/298763.html 转载请保留说明!

上一篇:基于微信小程序的电影订票系统设计与实现(代码+数据库+论文)(基于微信小程序制作)

下一篇:分享2款CSS3母亲节主题寄语文字动画特效

  • 钉钉智能填表怎么查看统计(钉钉智能填表怎么生成二维码)

    钉钉智能填表怎么查看统计(钉钉智能填表怎么生成二维码)

  • 微信绑信用卡为什么不能支付(微信绑信用卡为什么不能支付支付宝就可以)

    微信绑信用卡为什么不能支付(微信绑信用卡为什么不能支付支付宝就可以)

  • QQ怎么设置视频的时候可以美颜(qq怎么设置视频背景)

    QQ怎么设置视频的时候可以美颜(qq怎么设置视频背景)

  • 什么样的wifi密码万能钥匙破不了(什么样的wifi密码破不开)

    什么样的wifi密码万能钥匙破不了(什么样的wifi密码破不开)

  • 华为p40nfc怎么用门禁卡(华为p40nfc在哪里打开)

    华为p40nfc怎么用门禁卡(华为p40nfc在哪里打开)

  • 手机应该怎么进入pornhub(手机怎么进去)

    手机应该怎么进入pornhub(手机怎么进去)

  • 数据链路层分为哪两个子层(数据链路层分为什么层和什么层)

    数据链路层分为哪两个子层(数据链路层分为什么层和什么层)

  • 微信运动取消关注后怎么恢复(微信运动取消关注后别人能看到吗)

    微信运动取消关注后怎么恢复(微信运动取消关注后别人能看到吗)

  • 淘宝账期延长15天什么原因(淘宝账期延长15天后续订单还会这样吗)

    淘宝账期延长15天什么原因(淘宝账期延长15天后续订单还会这样吗)

  • 摄像头亮蓝色是啥意思(摄像头显示蓝色)

    摄像头亮蓝色是啥意思(摄像头显示蓝色)

  • 用于局域网的基本网络连接设备是(用于局域网的基础设施)

    用于局域网的基本网络连接设备是(用于局域网的基础设施)

  • 苹果11可以遥控空调吗(苹果11可以遥控小米电视吗)

    苹果11可以遥控空调吗(苹果11可以遥控小米电视吗)

  • 电信宽带wifi连上不能上网(电信宽带wifi连不上网怎么回事)

    电信宽带wifi连上不能上网(电信宽带wifi连不上网怎么回事)

  • 此sim卡无法使用LTE怎么解决(激活iphone时sim卡无效)

    此sim卡无法使用LTE怎么解决(激活iphone时sim卡无效)

  • 小度打不开机了怎么办(小度打不开机了,一直闪红灯)

    小度打不开机了怎么办(小度打不开机了,一直闪红灯)

  • 备忘录可以改时间么(备忘录能改时间吗)

    备忘录可以改时间么(备忘录能改时间吗)

  • iPhone11pro有耳机孔吗(iphone11promax有耳机)

    iPhone11pro有耳机孔吗(iphone11promax有耳机)

  • 微信出行历史怎么看(微信里面出行历史)

    微信出行历史怎么看(微信里面出行历史)

  • 拼多多九块九入口在哪(拼多多9块9是不是真的?)

    拼多多九块九入口在哪(拼多多9块9是不是真的?)

  • 手机qq看点里怎么发视频(手机qq看点怎么看文章)

    手机qq看点里怎么发视频(手机qq看点怎么看文章)

  • 如何将删了的照片恢复(怎样把删除的照片恢复到相册)

    如何将删了的照片恢复(怎样把删除的照片恢复到相册)

  • 腾讯视频该设备类型暂不支持移除(腾讯视频该设备类型暂不支持移除为什么)

    腾讯视频该设备类型暂不支持移除(腾讯视频该设备类型暂不支持移除为什么)

  • 手机相机wb是什么意思(手机相机wb是什么意思的缩写)

    手机相机wb是什么意思(手机相机wb是什么意思的缩写)

  • 数据驱动是什么意思(数据驱动是什么专业)

    数据驱动是什么意思(数据驱动是什么专业)

  • word文档表格调整增加一行(word文档表格调整行高后,文字不见了)

    word文档表格调整增加一行(word文档表格调整行高后,文字不见了)

  • vivox27人脸解锁在哪设置(vivo手机人脸解锁)

    vivox27人脸解锁在哪设置(vivo手机人脸解锁)

  • 微信小站是什么软件(微信小站怎么赚钱)

    微信小站是什么软件(微信小站怎么赚钱)

  • aureport命令  生成审计信息报表(ausearch命令)

    aureport命令 生成审计信息报表(ausearch命令)

  • 增值税电子专用发票需要盖章吗
  • 纳税人离线开票时间的文件
  • 收到公司发来的材料,计入会计分录
  • 装修公司一般纳税人税率是多少啊
  • 政策性搬迁资产损失情况怎么写
  • 预缴的所得税怎么做分录
  • 营改增后工业企业税率是多少?
  • 小规模开专票不超过45万要交税吗
  • 地方附加税
  • 股票期权个人所得税税率表
  • 计提坏账损失纳税的调整
  • 对外投资亏损可以记股权投资减少吗
  • 初级备考心得总结
  • 收回应收账款资产为什么不变
  • 电子汇票贴现怎样操作
  • 所得税报表里的资产总额在哪里取数
  • 附有销售退回条款的递延所得税问题
  • win11和win10哪个玩游戏好
  • 原本可以打开的软件
  • 小规模纳税人安装费税率
  • macbook不用键盘膜会进灰吗
  • 赞助费支出怎样记账
  • pps影音怎么看电视直播
  • win10升级win11报错
  • win11 桌面右键
  • 企业向股东发放现金股利
  • php fwrite函数
  • php数组函数有哪些
  • win10显示未充电
  • vue设置时间格式
  • 截取字符串php
  • php进程太多
  • javascript基础语法
  • php 获取文件类型
  • 记账凭证和原始凭证都是登记账簿的直接依据
  • 代理业务资产的含义
  • linux的nano是什么意思
  • 大前端需要掌握什么技能
  • 帝国cms目录
  • springboot升级到2.1.6需要注意
  • 公对公二手车交易税
  • mysql错误代码大全
  • 网红产品的推广文案
  • 记账凭证去根据什么填制
  • 权益工具是金融资产还是非金融资产
  • 综合所得汇算清缴是什么意思
  • 劳务报酬收入是否含税
  • 以前年度损益调整结转到本年利润吗
  • 公司投资款如何返还给股东
  • 固定资产报废的账务处理
  • 2018城镇医疗保险缴费
  • 无成本票如何避税
  • 外贸企业怎么开出口发票
  • 怎么设置账簿
  • 事业单位应设置事业收入科目
  • 跨服务器访问数据库
  • mysql57服务无法启动,找不到文件夹
  • 注册表c盘桌面路径改为d盘
  • win7进bios设置启动盘
  • centos怎么设置密码
  • 在Mac OS Yosemite 系统中如何发送超大邮件附件
  • ddriver进程
  • windows远程桌面怎么开启
  • win10系统无法运行exe文件
  • mmtray2k.exe有什么作用 是什么进程 mmtray2k进程查询
  • 电子书进不去系统原因
  • windos10正式版
  • win10怎么关闭讲述人模式
  • linux系统安装软件教程
  • 如何正确使用农药芸苔素
  • git 常用指令
  • if条件程序
  • go 与 python
  • unity如何导入资源文件
  • node运行js文件
  • htmlcssjavascript入门经典pdf
  • 北京税务机关代码查询
  • 云南省税务局咨询电话
  • 会计做账需要什么凭证
  • 滨州市望海花园北侧规划
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设