效果图
对表格里渲染的文件进行分页,并且实现两种下载,以及删除功能
如何渲染数据
在layui官网可以看到详细的代码,layui数据表格
这里有个问题就是官网渲染数据的时候是使用了默认的json样式的,所以我们应该的数据应该跟它的json模板是一致的,以下是标准模板,让后台帮忙调一下数据格式会很方便
如何添加右侧工具栏
上图中文件与右图的工具的实现也很简单,将你调试好的数据直接应用上,注意更改url成自己请求数据的接口
<!-- 这整个就是demo,表头 -->
<table class="layui-table" lay-data="{width:'100%', height:'full-70',skin:'nob', url:'你请求分页的地址', page:true, id:'idTest'}" lay-filter="demo">
<thead>
<tr>
<th lay-data="{type:'checkbox', fixed: 'left'}"></th>
<th lay-data="{field:'fileName',width:'200',align:'left'}">文件名</th>
<th lay-data="{field:'filesname',width:'200',align:'left'}">包名</th>
<th lay-data="{field:'file_time',width:'200',align:'left'}">时间</th>
<th lay-data="{fixed: 'right', width:'20%',align:'center', toolbar: '#barDemo'}"></th>
</tr>
</thead>
</table>
<script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="row1">下载</a>
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="row2"><img src="./img/QRCode.png"></a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
如何操作工具发送下载请求
注意,在工具类的都会添加一个lay-event=“row1”,里面的row1是可以自定义的
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="row1">下载</a>
下面让obj.event === ‘row1’ / ’row2‘等等,然后自定义事件,发送请求给后台
//监听工具条
table.on('tool(demo)', function(obj){
var data = obj.data;
if(obj.event === 'row1'){
//在这里发送下载请求
console.log(obj);
}
})
完整代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Layui</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, maximum-scale=1">
<link rel="stylesheet" href="./src/css/layui.css" media="all">
<style>
.layui-btn-danger,.layui-laypage .layui-laypage-curr .layui-laypage-em{
background-color:rgb(58, 54, 54)
}
</style>
</head>
<body>
<div style="margin-bottom: 5px;">
</div>
<!-- 这整个就是demo -->
<table class="layui-table" lay-data="{width:'100%', height:'full-70',skin:'nob', url:'请求地址', page:true, id:'idTest'}" lay-filter="demo">
<thead>
<tr>
<th lay-data="{type:'checkbox', fixed: 'left'}"></th>
<th lay-data="{field:'fileName',width:'200',align:'left'}">文件名</th>
<th lay-data="{field:'filesname',width:'200',align:'left'}">包名</th>
<th lay-data="{field:'fileTime',width:'200',sort:true,align:'left'}">时间</th>
<th lay-data="{fixed: 'right', width:'20%',align:'center', toolbar: '#barDemo'}"></th>
</tr>
</thead>
</table>
<script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="row1">下载</a>
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="row2"><img src="./img/QRCode.png"></a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<script src="./src/js/jquery-1.10.1.js"></script>
<script src="./src/layui.js"></script>
<script src="http://cdn.suoluomei.com/common/js2.0/axios/axios.min.js"></script>
<!-- 注意:如果你直接复制所有代码到本地,上述js路径需要改成你本地的 -->
<script>
layui.use('table', function(){
var table = layui.table;
//监听表格复选框选择
table.on('checkbox(demo)', function(obj){
console.log(obj)
});
//监听工具条
table.on('tool(demo)', function(obj){
var data = obj.data;
if(obj.event === 'row1'){
//在这里发送下载请求,obj.data.fileId就是发送数据传递过去的id
} else if(obj.event === 'row2'){
//在这里发送二维码下载请求,obj.data.fileId就是发送数据传递过去的id
console.log(obj);
console.log("row",typeof obj.data.fileId,);
}
else if(obj.event === 'del'){
layer.confirm('确定删除吗', function(index){
console.log(obj);
//传id给后台删除数据
console.log("row",typeof obj.data.fileId,);
});
}
});
var $ = layui.$, active = {
getCheckData: function(){ //获取选中数据
var checkStatus = table.checkStatus('idTest')
,data = checkStatus.data;
layer.alert(JSON.stringify(data));
}
,getCheckLength: function(){ //获取选中数目
var checkStatus = table.checkStatus('idTest')
,data = checkStatus.data;
layer.msg('选中了:'+ data.length + ' 个');
}
,isAll: function(){ //验证是否全选
var checkStatus = table.checkStatus('idTest');
layer.msg(checkStatus.isAll ? '全选': '未全选')
}
};
});
</script>
</body>
</html>