zoukankan      html  css  js  c++  java
  • 数据表格 layui.table

    layui官网-表单

    自动渲染

    方法渲染

    table.render,cols中的field是后台传递的data

    map.put("data",stuService.selectStuByName(name));
    
    table.render({
        elem: '#stu-table'
        ,id:'stu-table'//为了后面重载
        ,url:'stu/select'
        ,cellMinWidth: 80
        ,cols: [[
            {type:'numbers'}
            ,{field:'UUID', title: 'UUID'}
            ,{field:'name', title: '姓名'}
            ,{field:'age', title: '年龄', sort: true}
            ,{field:'sex', title: '性别',templet: function (d) {
                    if (d.sex==0) return "女";
                    else if (d.sex==1) return "男";
                }
            }
            ,{field:'major', title: '专业'}
            ,{toolbar:"#stu-toolbar",title:"操作"}
        ]]
    });
    

    toolbar可以添加对单条数据的操作

    <script type="text/html" id="stu-toolbar">
        <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
    </script>
    

    然后在操作可以通过event来判断(lay-event="del)

    table.on('tool(stu-table)',function (obj) {
        var data=obj.data;
        var event=obj.event;
        if(event ==='del'){
        ......
    

    传入Json格式

    自动填充的json是

    {
      "code": 0,
      "msg": "",
      "count": 1000,
      "data": [
        {
          "id": 10000,
          "username": "user-0",
          "sex": "女",
          "city": "城市-0",
          "sign": "签名-0",
          "experience": 255,
          "logins": 24,
          "wealth": 82830700,
          "classify": "作家",
          "score": 57
        },
        {
          "id": 10001,
          "username": "user-1",
          "sex": "男",
          "city": "城市-1",
          "sign": "签名-1",
          "experience": 884,
          "logins": 58,
          "wealth": 64928690,
          "classify": "词人",
          "score": 27
        }]
    }
    

    关于data的问题后端的数据格式用Object,而不是List<Object>(显示不了),两者传入前端的区别如图

    重载

    注意:需要在table.render加上一个id,这个id是自己取的名字,不是css中的id选择器

    table.reload("stu-table");
    
    重载的时候携带传给后台的数据
    table.reload('stu-table',{
        where:{"name":data.field.stu_name}
        ,page:{
            curr:1
        }
    });
    

    接口返回的数据格式不符合 table 默认规定的格式

    数据格式解析的回调函数,用于将返回的任意数据格式解析成 table 组件规定的数据格式。

    默认规定的数据格式layui.code

    {
      "code": 0,
      "msg": "",
      "count": 1000,
      "data": [{}, {}]
    } 
    

    很多时候,您接口返回的数据格式并不一定都符合 table 默认规定的格式,比如:

    假设您返回的数据格式layui.code

    {
      "status": 0,
      "message": "", 
      "total": 180, 
      "data": {
        "item": [{}, {}]
      }
    }
    

    那么你需要借助 parseData 回调函数将其解析成 table 组件所规定的数据格式

    table.render({
      elem: '#demp'
      ,url: ''
      ,parseData: function(res){ //res 即为原始返回的数据
        return {
          "code": res.status, //解析接口状态
          "msg": res.message, //解析提示文本
          "count": res.total, //解析数据长度
          "data": res.data.item //解析数据列表
        };
      }
      //,…… //其他参数
    });    
    

    分页显示

    打开page属性

    page: true,//开启分页
    limits: [5, 10, 15, 20, 25, 50, 100],
    limit: 5,//默认每页数
    

    layui 会默认向后端发送两个参数 limitpage,后端返回page(比如java)

  • 相关阅读:
    PHP 去除HTML标签 HTML实体转字符 br转
    PHP while使用
    js滚动条滚动到某个元素位置
    js按键监听
    用onerror处理图片获取失败问题
    windows 查看端口占用以及关闭该进程
    js获取当前时间戳 不需毫秒数
    escape,encodeURI,encodeURIComponent的区别
    php 获取中文长度 截取中文字符串
    将时间转换为xxx天前 xxx..前
  • 原文地址:https://www.cnblogs.com/10134dz/p/13584612.html
Copyright © 2011-2022 走看看