Layui数据表格导出预览

开发工具与关键技术:mvc、layui、js、html
作者:张俊辉
撰写时间:2019年04月17日

  • 在有些时候我们在实现某些功能时需要获取数据表格的查询条件,例如导出Excel表格时就需要获取条件查询表单的查询条件与数据表格内的查询条件对比,可以判断是否已经以条件查询表单的查询条件查询出数据,从而达到导出预览的效果!

步骤一:数据表格初始化加载与导入导出工具按钮绑定按钮

<script type="text/html" id="toolbarDemo">
        <div class="layui-btn-container">
            <button class="layui-btn layui-btn-sm" lay-event="derived">导出</button>
            <button class="layui-btn layui-btn-sm" lay-event="tolead">导入</button>
        </div>
</script>
 layui.use('table', function () {
	var table = layui.table;
	//供应商信息表
    table.render({
        elem: '#Supplier'
      , method: 'post'
      , toolbar: '#toolbarDemo'
      , id: 'idTest'
      , url: 'SelectSupplier' //数据接口
      , page: true //开启分页
      , cols: [[ //表头
        具体相关参数请产考Layui说明文档
      ]]
      , limit: 5
        , response: {
            statusName: 'success' //规定数据状态的字段名称,默认:code
          , statusCode: true //规定成功的状态码,默认:0
          , countName: 'totalRows' //规定数据总数的字段名称,默认:count
        }
        , request: {
            pageName: 'curPage' //页码的参数名称,默认:page
          , limitName: 'pageSize'
        }
    });
});

步骤二:监听条件查询表单提交:

var tableSupplier2;//供应商多条件
layui.use('form', function () {
    var form = layui.form;
    //多条件查询供应商信息
    form.on('submit(demo1)', function (data) {
        layui.use('table', function () {
            var table = layui.table;
            tableSupplier2 = table.reload('idTest', {
                where: data.field
            });
        });
        return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
    });
});

步骤三:监听头部工具栏导出按钮点击事件

layui.use('table', function () 
{
	var table = layui.table;
	//监听供应商信息头工具栏事件
    table.on('toolbar(Supplier)', function (obj) {
    	switch (obj.event) {
           case 'derived':
                layer.confirm("是否要导出当前供应商数据?", {
                   icon: 3,
                   btn: ["确定", "取消"]
                }, function (layerIndex) {
                   layer.close(layerIndex);
                   DerivedClick();
                });
                break;
       };
    });
});

步骤四:对比条件并显示导出模态框或提示框:

//供应商信息导出模态框
function DerivedClick() {
   var SupplierName2 = "";var CompanyName2 = "";var SupplierNumber2 = "";
   try {
       var Supplierwhere = tableSupplier2.config.where;
       SupplierName2 = Supplierwhere.SupplierName;
       CompanyName2 = Supplierwhere.CompanyName;
       SupplierNumber2 = Supplierwhere.SupplierNumber;
   }
   catch (e) {
       SupplierName2 = "";CompanyName2 = "";SupplierNumber2 = "";
   }
   if ($("#demo1 input[name='SupplierName']").val() != SupplierName2||$("#demo1 input[name='CompanyName']").val() != CompanyName2||$("#demo1 input[name='SupplierNumber']").val() != SupplierNumber2) {
       layui.use('layer', function () {
           var layer = layui.layer;
           layer.msg('请先查询并预览需要导出数据!', { icon: 0 });
       });
   }
   else {
       layui.use('layer', function () {
           var layer = layui.layer;
           layer.open({
               type: 1,
               title: '选择导出列',
               area: ['850px', '330px'],
               content: $('#DerivedLayer'), 
           });
       });
       $("#DerivedForm input[name='SupplierName2']").val(SupplierName2);
       $("#DerivedForm input[name='CompanyName2']").val(CompanyName2);
       $("#DerivedForm input[name='SupplierNumber2']").val(SupplierNumber2);
   }
};

效果图如下:在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值