layui 表格操作列按钮动态显示变换

本文介绍如何在Layui的表格组件中实现按钮的动态显示与隐藏功能,通过在barDemo模板中添加条件判断,使得按钮能够根据img_status属性的不同值,展示为轮播显示或轮播隐藏状态,提升用户交互体验。

在使用Layui的表格组件时有时会用到可变换的操作比如显示或隐藏功能,那么就需要按钮的动态变换

按钮动态变换

实现方法在layui的barDome中加入如下代码

<script type="text/html" id="barDemo">
    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="preview">预览</a>
    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit">编辑</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
    {{#  if(d.img_status == "yes"){ }}
    <a class="layui-btn layui-btn-warm layui-btn-xs no" lay-event="no">轮播隐藏</a>
    {{# }if(d.img_status == "no") { }}
    <a class="layui-btn layui-btn-xs yes" lay-event="yes">轮播显示</a>
    {{#  } }}
</script>

if中为判断显示隐藏的条件,lay-event是触发的事件
事件触发之后可以用
reload()方法刷新表格

Layui 表格中,可以通过自定义模板或者条件渲染的方式动态控制表格操作按钮的状态。以下是具体的实现步骤及说明: --- ### 实现思路 1. **设置工具条**:通过 `toolbar` 或者 `templet` 来定制每行的操作按钮。 2. **判断状态**:根据当前行的数据(例如某个字段值),决定是否禁用或隐藏该按钮。 3. **绑定样式/属性**:利用 JavaScript 动态添加 `disabled` 样式或其他交互效果。 --- ### 示例代码 #### 步骤 1:定义工具栏按钮 首先,在初始化表格时,通过 `cols` 参数配置,并指定一为“操作。 ```javascript layui.use(['table'], function(){ var table = layui.table; table.render({ elem: '#demo', height: 400, url:'/some/data', // 数据接口地址 method: 'get', page: true, cols: [[ {type: "numbers", title: "#"}, {field:'id', title:'ID', width:80}, {field:'name', title:'姓名', width:120}, {field:'status', title:'状态', width:90}, {fixed: 'right', title:'操作', toolbar:'#barDemo'} // 使用自定义工具栏模板 ]] }); // 工具栏事件监听 table.on('tool(demo)', function(obj){ var data = obj.data; // 获取当前行数据 if (obj.event === 'edit') { alert("编辑:" + data.name); } else if (obj.event === 'delete'){ layer.confirm('确定删除吗?', function(index) { console.log(data.id); // 执行删除逻辑 layer.close(index); }); } }); }); ``` 上述例子中,我们引入了一个名为 `#barDemo` 的 HTML 模板来生成每个操作项。 --- #### 步骤 2:编写按钮模板 在页面上加入如下模板脚本,用于定义如何展示各个动作按钮以及其可用性规则。 ```html <script type="text/html" id="barDemo"> {{# if(d.status == 'active'){ }} <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a> <button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="delete">删除</button> {{# }else{ }} <!-- 状态非 active 则只保留查看 --> <span style="color:#ccc;">无权限操作...</span> {{# } }} </script> ``` 在这个例子里面,假如某一行记录里的 status 字段等于 “active”,那么就允许用户点击 编辑 和 删除 按钮;如果不符合这个情况则将文本变成灰色提示不可用信息。 --- #### 进阶应用 - 更复杂的场景 对于更复杂的需求比如需要额外请求服务端校验结果后再调整控件可见度等情况,可以在加载完所有行之后遍历 DOM 元素逐个处理它们的 display 属性等特性。不过这会稍微增加性能消耗所以在简单项目里尽量避免这种做法除非必要。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值