使用layui实现数据表格基本操作

1、不要忘记引用layui线上css和script

2、后台代码注意返回状态码和总页数等等的规范

3、前台代码如下

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <link rel="stylesheet" href="__STATIC__/layui/css/layui.css">
    <link rel="shortcut icon" href="__STATIC__/images/study.ico">
</head>
<body>
    <!--搜索-->
    <div class="demoTable">
        关键字:
        <div class="layui-inline">
            <input class="layui-input" name="id" id="demoReload" autocomplete="off">
        </div>
        <button class="layui-btn" data-type="reload">搜索</button>
    </div>

    <!--table表格渲染-->
    <table class="layui-hide" id="test" lay-filter="test"></table>

    <!--    模板:批量删除-->
    <script type="text/html" id="delAll">
        <div class="layui-btn-container">
            <button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="del">批量删除</button>
        </div>
    </script>

    <!--    模板:基本操作-->
    <script type="text/html" id="actionBar">
        <a class="layui-btn layui-btn-xs" lay-event="edit">查看</a>
        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
    </script>

    <!--    模板:图片-->
    <script type="text/html" id="img">
        <div><img src="http://www.m7.com/static/uploads/{{d.brand_logo}}" width="30" height="30" alt="加载失败.."></div>
    </script>

</body>
</html>
<script src="__STATIC__/layui/layui.js"></script>
<script>
    layui.use(['table','jquery'], function(){
        var table = layui.table;//类似于实例化
        var $ = layui.jquery;
        var token = localStorage.getItem('token');
        //开始渲染报表格
        table.render({
            elem: '#test',//将table实例与页面中的元素绑定到一起(通过id进行绑定的)
            url:'http://www.m7.com/admin/brand/brandListDo?token='+token,//接口地址
            cols:[[
                {type:'checkbox'},
                {field:'id', title: '主键id', sort: true},
                {field:'brand_name', title: '品牌名称',edit:'text'},
                {field:'brand_logo', title: '品牌LOGO',templet:'#img'},
                {field:'brand_desc', title: '品牌描述',edit:'text'},
                {field:'brand_order', title: '品牌排序',sort:true,edit:'text'},
                {field:'cate_name', title: '分类名称'},
                {title: '操作',fixed: 'right',toolbar: '#actionBar', width:150},
            ]],//渲染每一列
            page: true,//开启分页
            limit:3,//控制每页显示多少条(默认)
            limits:[3,5,10,15,20],//控制每页显示多少条
            toolbar:'#delAll',//开启工具栏
            id:'testReload',//给出id标识
        });

        //头工具栏事件(批量删除)
        table.on('toolbar(test)', function(obj){
            var checkStatus = table.checkStatus(obj.config.id);
            var arr = checkStatus.data;
            var ids = [];
            $(arr).each(function (k,v) {
                ids.push(v.id)
            })
            $.ajax({
                url:'http://www.m7.com/admin/brand/brandDel?token='+token+'&ids='+ids.toString(),
                success:function (e) {
                    if(e.code==0){
                        table.reload('testReload')
                    }
                }
            })

        });

        //监听单元格编辑
        table.on('edit(test)', function(obj){
            var value = obj.value //得到修改后的值
                ,data = obj.data //得到所在行所有键值
                ,field = obj.field; //得到字段
            layer.msg('[ID: '+ data.id +'] ' + field + ' 字段更改为:'+ value);
        });


        //监听行工具事件
        table.on('tool(test)', function(obj){
            var data = obj.data;
            //console.log(obj)
            if(obj.event === 'del'){
                layer.confirm('确定要删除吗?', function(index){
                    console.log(data);
                    obj.del();
                    layer.close(index);
                });
            } else if(obj.event === 'edit'){
                console.log(data.id)
            }
        });

        var $ = layui.$, active = {
            reload: function(){
                var demoReload = $('#demoReload');

                //执行重载
                table.reload('testReload', {
                    page: {
                        curr: 1 //重新从第 1 页开始
                    }
                    ,where: {
                        word:demoReload.val()
                    }
                });
            }
        };

        $('.demoTable .layui-btn').on('click', function(){
            var type = $(this).data('type');
            active[type] ? active[type].call(this) : '';
        });

    })
</script>

效果图如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你关于LAYUI数据表格查询的问题。 LAYUI数据表格查询是基于JavaScript的一个开源前端UI框架,可以帮助开发者快速实现数据表格的展示和查询功能。你可以通过LAYUI提供的API接口,实现数据的排序、筛选、分页等功能。 具体来说,你可以通过以下步骤实现数据表格查询: 1. 在HTML页面中引入LAYUI相关的JS和CSS文件。 2. 在HTML页面中定义一个数据表格的容器,如<div id="table-container"></div>。 3. 在JavaScript中定义数据表格的配置信息,包括表头、数据源、分页等。 4. 调用LAYUI提供的API接口,实现数据表格的渲染和查询功能。 例如,你可以通过以下代码实现一个简单的数据表格查询: ``` layui.use('table', function(){ var table = layui.table; //定义数据表格的配置信息 var options = { elem: '#table-container', url: '/api/data', cols: [[ {field: 'id', title: 'ID'}, {field: 'name', title: '姓名'}, {field: 'age', title: '年龄'}, {field: 'email', title: '邮箱'} ]], page: true }; //渲染数据表格 table.render(options); //实现数据查询功能 $('#search-btn').on('click', function(){ var keyword = $('#keyword').val(); table.reload('table-container', { where: {name: keyword}, page: {curr: 1} }); }); }); ``` 在上述代码中,我们首先使用LAYUI的table模块,定义了数据表格的配置信息。然后调用table.render()方法,渲染了数据表格。 接着,我们实现了一个查询按钮和一个关键词输入框,当用户点击查询按钮时,我们通过table.reload()方法重新加载数据,并传入了一个where参数,用于指定查询条件。这样就可以实现数据表格的查询功能了。 希望这个回答能够对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值