zoukankan      html  css  js  c++  java
  • layui 规定的数据格式

    layui 规定的数据格式



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

    table 组件默认规定的数据格式为(参考:https://www.layui.com/demo/table/user/?page=1&limit=30):


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

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

    假设您返回的数据格式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 //解析数据列表
        };
      }
    }); 
    

    也可以直接定义一个符合layui数据格式的model

     public class LayuiModel
        {
            public int code { get; set; }
            public int count { get; set; }
    
            public List<User> data = new List<User>();
        }
    

    数据填充

    填充代码

    public ActionResult GetUser(string UserName = "")
    {
    
        List<User> list = new List<User>();
        DataTable dt = MyDBHelper.ExecuteQuery("select u.id,u.UserName,u.PassWord,r.rolename from [User] u left join userrole us on u.id = us.userid left join role r on us.roleid = r.id where u.UserName like '%" + UserName + "%'");
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            list.Add(new User() { id = dt.Rows[i]["id"].ToString(), UserName = dt.Rows[i]["UserName"].ToString(), PassWord = dt.Rows[i]["PassWord"].ToString(), rolename = dt.Rows[i]["rolename"].ToString() });
        }
        LayuiModel m = new LayuiModel() { code = 0, count = list.Count, data = list };
        //var json = JsonConvert.SerializeObject(list);
        return Json(m);
    }
    

    像这样就收数据就不需要用parseData了,可以直接这样常规写法
        table.render({
            elem: '#test'
           , method: 'post'//默认是get
          , url: '/User/GetUser'
          , cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增
          , toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板
          , defaultToolbar: ['filter','exports', 'print'
            , { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可。 'filter'(查看或隐藏列)'exports'(导出)'print'(打印)
                title: '提示'
            , layEvent: 'LAYTABLE_TIPS'
            , icon: 'layui-icon-tips'
            }
            , { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可。 'filter'(查看或隐藏列)'exports'(导出)'print'(打印)
                title: '提示'
            , layEvent: 'LAYTABLE_TIPS2'
            , icon: 'layui-icon-tips'
            }]
          , title: '用户数据表'
          , cols: [[
            { type: 'checkbox', fixed: 'left' }
            , { field: 'id', title: 'ID', fixed: 'left', unresize: true, sort: true, hide: true }
            , { field: 'UserName', title: '用户名', edit: 'text' }
            , { field: 'PassWord', title: '用户密码', edit: 'text', hide: true }
            , { field: 'rolename', title: '用户角色', edit: 'text' }
            , { fixed: 'right', title: '操作', toolbar: '#barDemo' }
          ]]
          , id: 'testReload'
          , page: true
          , limits: [3, 5, 10, 20]
          , limit: 10 //每页默认显示的数量
          , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据,res为从url中get到的数据
              var result;
              console.log(this);
              console.log(JSON.stringify(res));
              if (this.page.curr) {
                  result = res.data.slice(this.limit * (this.page.curr - 1), this.limit * this.page.curr);
              }
              else {
                  result = res.data.slice(0, this.limit);
              }
              return {
                  "code": res.code, //解析接口状态
                  //"msg": res.msg, //解析提示文本
                  "count": res.count, //解析数据长度
                  "data": result //解析数据列表
              };
          }
        });
    
  • 相关阅读:
    JVM Ecosystem Report 2020
    TiDB 简介
    Docker镜像分层打包方案
    Promethues + Grafana + AlertManager使用总结
    Spring Boot自动注入原理
    Spring Boot 2.x 自定义Endpoint
    Oracle 等待事件 Enq: CF
    1000行MySQL学习笔记
    PostgreSQL DBA常用SQL查询语句
    MongoDB DBA常用的NoSQL语句
  • 原文地址:https://www.cnblogs.com/Chen-Ru/p/14123743.html
Copyright © 2011-2022 走看看