layui-数据表格之表头

在数据表格的div中添加 lay-filter=“roles”,以便监听

<div class="layui-inline" title="新增" lay-event="add"><i class="layui-icon layui-icon-add-1"></i></div>
<div class="layui-inline" title="批量删除" lay-event="delete"><i class="layui-icon layui-icon-delete"></i></div>
table.on('toolbar(roles)', function(obj) {
			var data = obj.data;
			var checkStatus = table.checkStatus(obj.config.id);
			switch (obj.event) {
			case 'add':
				layer.open({
					type : 2,
					area : [ '400px', '300px' ],
					//这里是跳转到弹出层页面,具体功能还需在add中完成
					content : '[[@{/role/add}]]' 
				});
				break;
			//批量删除
			case 'delete':
				let data = checkStatus.data; //得到选中行数据
				let ids = [];
				for (let i in data) {
					ids.push(data[i].id);
					console.log(data[i].id);
				}
				layer.confirm(`是否进行批量删除:${ids}`, function() {
					deleteByIds(ids, function() {
						if (this.code == 0) {
							reload();
						}
						layer.msg(this.msg);
						layer.close(index);
					});
				})
				break;
			}
		})

function deleteByIds(ids, callback) {
			$.ajax({
				url : '[[@{/role/del}]]',
				data: {
					ids: ids
				},
				traditional: true,
				type : 'get',
				dataType : 'json',
				success : function(rs) {
					if (typeof callback === 'function') {
						callback.call(rs);
						layer.msg(rs.msg);
					}
				}
			});
		}
``

批量删除对应的后端代码

@GetMapping("/del")
	@ResponseBody
	public AResult deleteByIds(Integer[] ids) {
		try {
			if(roleService.deleteById(ids)) {
				return AResult.success().setCode(0).setMsg("批量删除成功");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return AResult.error(500).setMsg("批量删除失败");
	}


	/**
	 * 批量删除
	 * @param ids
	 * @return 
	 */
	boolean deleteById(Integer... ids);

	//采用逻辑删除
	<update id="deleteByIds">
		update role set status= 1
		where 
		<foreach item="id" separator="," close=")" 
			open="id in (" collection="ids">#{id} </foreach>
	</update>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
layui-table 中添加表头筛选的方法如下: 1.设置表头筛选的数据 可以通过设置`toolbar`属性来设置表头的筛选数据,例如: ```javascript var tableIns = table.render({ elem: '#test' ,url:'/demo/table/user/' ,toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板 ,cols: [[ {type: 'checkbox', fixed: 'left'} ,{field:'id', title:'ID', width:80, sort: true} ,{field:'username', title:'用户名', width:120} ,{field:'email', title:'邮箱', width:150} ,{field:'sign', title:'签名'} ,{field:'sex', title:'性别', width:80} ,{field:'city', title:'城市', width:100} ,{field:'experience', title:'积分', width:80, sort: true} ,{field:'logins', title:'登入次数', width:100, sort: true} ,{field:'status', title:'状态', width:100, sort: true} ,{field:'ip', title:'IP', width:120} ,{field:'create_time', title:'创建时间', width:150, sort: true} ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150} ]] ,page: true }); ``` 在上面的代码中,`toolbar`属性绑定了一个左侧模板(即下面代码中的`#toolbarDemo`),在该模板中可以设置表头的筛选数据,例如: ```html <script type="text/html" id="toolbarDemo"> <div class="layui-btn-container"> <button class="layui-btn layui-btn-sm" lay-event="add">添加</button> <button class="layui-btn layui-btn-sm" lay-event="delete">删除</button> </div> <div class="layui-inline"> <label class="layui-form-label">城市</label> <div class="layui-input-inline"> <select name="city"> <option value="">全部</option> <option value="0">北京</option> <option value="1">上海</option> <option value="2">广州</option> <option value="3">深圳</option> <option value="4">杭州</option> </select> </div> </div> <div class="layui-inline"> <label class="layui-form-label">状态</label> <div class="layui-input-inline"> <select name="status"> <option value="">全部</option> <option value="0">正常</option> <option value="1">禁用</option> </select> </div> </div> </script> ``` 在上面的代码中,我们设置了两个下拉框,分别用于筛选城市和状态。 2.监听表头筛选事件并重新加载表格数据表头筛选数据改变时,我们需要监听表头的`lay-filter`属性,并重新加载表格数据。在下面的示例中,我们监听了两个下拉框的`select`事件,并重新加载了表格数据: ```javascript //监听表头筛选数据改变事件 table.on('toolbar(test)', function(obj){ var city = $('select[name="city"]').val(); var status = $('select[name="status"]').val(); table.reload('test', { where: { //设定异步数据接口的额外参数,任意设 city: city, status: status } ,page: { curr: 1 //重新从第 1 页开始 } }); }); ``` 在上面的代码中,我们通过`$('select[name="city"]').val()`和`$('select[name="status"]').val()`获取了两个下拉框的值,并重新加载了表格数据。其中,`table.reload()`方法中的`test`参数表示表格的ID,可以根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值