layui关闭表格编辑_layui 表格编辑

本文详细介绍了如何在layui中实现表格编辑功能,包括输入框、单选、多选和日期选择等类型的编辑,并展示了如何配置联动效果,如下拉框联动和日期联动。通过aopTable对象进行事件监听和数据更新,同时也讲解了如何在点击事件前动态获取下拉框数据,以实现级联选择的效果。
摘要由CSDN通过智能技术生成
示例demo

layui.config({

base: ''

}).extend({

tableEdit:'__ADMINSTATIC__/js/tableEdit'

}).use(['table','tableEdit','layer'], function () {

var table = layui.table,tableEdit = layui.tableEdit,$ = layui.$;

var params = [{name:1,value:"张三1"},{name:2,value:"张三2"},{name:3,value:"张三3"},{name:4,value:"张三4"},{name:5,value:"张三5"}];

var cols = table.render({

elem: '#tableId'

,id:'id'

,url:'__ADMINSTATIC__/data.json'

,height: 'full-90'

,page: true

,cols: [[

{type:'checkbox'}

//type的类型值:select(下拉框)date(时间选择框)input(输入框)

//input为输入框,失去焦点会触发回调,aopTable.on()中触发的回调

,{field:'name',title: '输入框',width:120,event:'name',config:{type:'input'}}

//data 为下拉框数据

,{field:'danxuan',align:'center', title: '单选',width:120,event:'danxuan',config:{type:'select',data:params},templet:function (d) {

return d.danxuan && d.danxuan.value ? d.danxuan.value : '';

}}

// enabled => true:多选,false:单选。默认为false

,{field:'duoxuan', title: '多选',width:120,event:'duoxuan',config:{type:'select',data:params,enabled:true},templet:function (d) {

var str = [];

d.duoxuan.forEach(function (e) {

str.push(e.value)

});

return str.join(' || ');

}}

//dateType表示日期时间格式,date为“yyyy-MM-dd”,datetime为“yyyy-MM-dd HH:ss:mm”

,{field:'birthday', title: '生日',width:120,event:'birthday',config:{type:'date',dateType:'date'}}

//cascadeSelectField字段为级联开关字段(存在该字段则级联,否则不级联)

,{field:'xlkjl', title: '下拉框联动(上级)',width:150,event:'xlkjl',config:{type:'select',data:params,cascadeSelectField:'xialaxiaji'},templet:function (d) {

return d.xlkjl && d.xlkjl.value ? d.xlkjl.value : '';

}}

,{field:'xialaxiaji', title: '下拉框联动(下级)',width:150,event:'xiaji',config:{type:'select',data:params},templet:function (d) {

return d.xialaxiaji && d.xialaxiaji.value ? d.xialaxiaji.value : '';

}}

,{field:'rqjl', title: '日期联动(上级)',width:150,event:'rqjl',config:{type:'date',dateType:'date',cascadeSelectField:'rqxiaji'}}

,{field:'rqxiaji', title: '日期框联动(下级)',width:150,event:'rqxiaji',config:{type:'select',data:params},templet:function (d) {

return d.rqxiaji && d.rqxiaji.value ? d.rqxiaji.value : '';

}}

]]

}).config.cols;

/**

* 参数cols是table.render({})中的cols属性值

* aop代理是基于event点击事件进行操作的,因此cols中务必开启event点击事件!

**/

var aopTable = tableEdit.aopObj(cols); //获取一个aop对象

/**

* 注意:

* 1、 aopTable.on('tool(xxx)',function (obj) {})

* 2、 table.on('tool(yyy)',function (obj) {})

* 如果1中的xxx与2中的yyy字符串相同时,不能同时用,用了会造成后调用者覆盖前调用者。

* 应该直接用1来代替2,因为1中包含了2中的事件。

* 如果不相同,则可以同时使用。

**/

aopTable.on('tool(tableEvent)',function (obj) {

var field = obj.field; //单元格字段

var value = obj.value; //修改后的值

var data = obj.data; //当前行旧数据

var event = obj.event; //当前单元格事件属性值

var update = {};

update[field] = value;

//把value更新到行中

obj.update(update);

/**

*说白了,此obj与table.on('tool(tableEvent)',function (obj) {})

*中的obj对象是同一个,所以可以如此操作。

*

* */

});

/**

* 级联下拉框 => 点击事件生成下拉框之前的回调函数

* 主要用于 => 动态获取单元格下拉数据

* tableEvent => table的lay-filter属性值

* 如示例代码所示

*/

tableEdit.on('clickBefore(tableEvent)',function (obj) {

var cascadeSelectData = obj.data; //级联数据

var cascadeSelectField = obj.field; //级联字段

if(Array.isArray(cascadeSelectData)){

cascadeSelectData = cascadeSelectData[0];

}

var reslut = null;

//下拉数据 只可ajax同步请求后台

if(cascadeSelectField === 'rqjl'){ //日期级联下拉框

if(cascadeSelectData === '2020-05-11'){

reslut = {

data:[{name:1,value:'语文'},{name:2,value:'数学'},{name:3,value:'英语'},{name:4,value:'物理'},{name:5,value:'化学'}],

enabled:false //单选 true为多选

};

}else {

reslut = {

data:[{name:6,value:'政治'},{name:7,value:'地理'},{name:8,value:'历史'},{name:9,value:'生物'},{name:10,value:'音乐'}],

enabled:false //单选 true为多选

};

}

}else {

if(cascadeSelectData.name+'' === '1'){

reslut = {

data:[{name:11,value:'贵州'},{name:12,value:'云南'},{name:13,value:'四川'},{name:14,value:'湖南'}],

enabled:false //单选 true为多选

};

}else {

reslut = {

data:[{name:15,value:'荆州'},{name:16,value:'扬州'},{name:17,value:'杭州'},{name:18,value:'苏州'}],

enabled:false //单选 true为多选

};

}

}

return reslut;

});

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: layui 是一个前端框架,它提供了很多组件,其中包括数据表格。 你可以使用 layui 的数据表格组件来展示数据,并且可以在表格编辑内容。 使用方法: 1. 在你的 HTML 文件中引入 layui 的 CSS 和 JavaScript 文件。 2. 在你的 HTML 中创建一个数据表格,并使用 layui表格模板。 3. 在 JavaScript 中配置表格的参数,包括数据源、列名、每列的编辑选项等。 4. 在 JavaScript 中调用 layui表格渲染方法,渲染出表格。 例如: HTML: ``` <table id="table"></table> ``` JavaScript: ``` layui.use(['table', 'form'], function(){ var table = layui.table; var form = layui.form; table.render({ elem: '#table', url: '/demo/table/user/', cols: [[ {field:'id', title: 'ID', edit: 'text'}, {field:'username', title: '用户名', edit: 'text'}, {field:'sex', title: '性别', edit: 'text'}, {field:'city', title: '城市', edit: 'text'}, {field:'sign', title: '签名', edit: 'text'}, {field:'experience', title: '积分', edit: 'text'}, {field:'score', title: '评分', edit: 'text'}, {field:'classify', title: '职业', edit: 'text'}, {field:'wealth', title: '财富', edit: 'text'}, {field:'right', title: '操作', toolbar: '#toolbar'} ]] }); }); ``` 在这个例子中,我们使用了 layui表格渲染方法 `table.render` 来渲染表格,并在 `cols` 参数中指 ### 回答2: layui 数据表格是一款基于layui框架开发的强大的数据表格组件,可以方便地实现对表格数据的编辑功能。 在使用layui 数据表格进行编辑内容时,我们需要先引入layui的相关依赖,并初始化数据表格对象。然后设置表格的列属性以及数据源,同时可以定义一些其他的属性,如是否开启分页、设置每页显示的数据数量等。 当表格中的数据需要编辑时,可以通过设置单元格编辑的属性来实现。比如,通过设置edit属性为text, select等来指定单元格编辑的类型。当用户点击单元格时,会自动调出对应的编辑器进行编辑,并将编辑后的数据保存到对应的单元格。 除此之外,layui 数据表格还提供了事件监听机制,可以通过监听edit事件来获取编辑后的数据。在编辑器中进行编辑时,可以通过监听edit事件来获取编辑后的单元格值,并进行保存或其他操作。 同时,layui 数据表格还支持批量编辑,可以通过选择多个单元格进行批量编辑操作,从而提高编辑效率。 总之,layui 数据表格通过简洁的API和丰富的功能,为我们提供了方便快捷的编辑内容的方式。无论是单个单元格的编辑还是批量编辑,它都能满足我们对数据表格编辑的需求。通过合理的配置和使用,我们可以轻松实现数据的编辑,并提高工作效率。 ### 回答3: layui数据表格是一款基于Layui框架开发的前端数据展示和编辑插件。它提供了丰富的表格功能,包括数据的展示、排序、筛选、分页等。 首先,我们需要引入相应的Layuilayui数据表格的相关代码,然后创建一个表格容器,指定表格的唯一id。 接下来,我们可以通过填充数据来初始化表格内容,可以是静态的数据,也可以是通过异步请求获取的动态数据。编辑内容可以通过设置表格edit属性来实现,编辑模式下,用户可以直接对表格中的数据进行修改。 在编辑内容时,我们可以对表格的字段进行校验,限制输入的类型、最大长度等,以确保数据的准确性和安全性。 此外,layui数据表格还支持自定义编辑内容的样式和操作按钮,比如可以添加删除按钮、保存按钮等。这样用户就可以通过点击按钮来触发相应的操作,比如保存修改的内容,删除指定的数据行等。 在保存编辑的内容时,我们可以通过执行相应的回调函数来保存数据到后端服务器,以实现数据的持久化。 最后,我们还可以通过设置相应的监听事件来实现对表格数据的监听和响应,比如可以监听表格某一列的排序事件、行选中事件等。 总之,layui数据表格提供了便捷的数据展示和编辑功能,可以帮助我们快速搭建一个功能强大的数据表格,并且支持自定义样式和操作按钮,以及对表格数据的监听和响应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值