layui之 数据表格动态cols(字段)动态变化,实现自定义表头

参考链接

https://blog.csdn.net/qq_36025814/article/details/103938509

html

let cols_arr = assembleTableCol();  //重新定义标题那行

  //重新拼接数组标题行
  function assembleTableCol(){
      let thisCols = [];  //定义标题空间
      var responseData;
      $.ajax({
          headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
          },
          url: "query/signup/cols_arr",
          method: 'get',
          dataType: 'json',
          async:false,   // 重要,外赋值到responseData
          success: function(res) {
              let defaultField = [];
              defaultField = "{field:'id', title: '', width:20, sort: true},,{field:'day', title: '某天', width:120}";
              for (var i = 0; i < res.length; i++) {
                  var l = res[i].split('_');
                  // defaultField += ",,{field:'"+res[i]+"', title: '某天', width:120}";
                  defaultField += ",,{field:'"+res[i]+"', title: '"+l[1]+"级', width:120}";
              }
              defaultField += ",,{fixed: 'right',title: '操作',width: 150,align: 'center',toolbar: '#barDemo'}";
              defaultField = defaultField.split(',,');
              for (var i = 0; i < defaultField.length; i++) {
                  defaultField[i]=eval("("+defaultField[i]+")"); 
              }
              // 下面是正确格式
              // let defaultField2 =[{field:'id', title: '', width:20, sort: true}
              //                   ,{field:'day', title: '某天1', width:120}
              //                   ,{field:'level_1_give', title: '某天2', width:120}
              //                   ,{field:'level_2_give', title: '某天3', width:120}
              //                   ,{fixed: 'right',title: '操作',width: 150,align: 'center',toolbar: '#barDemo'}];
// console.log(defaultField);
              responseData =  defaultField;
          }
      });
      let defaultLength = responseData.length;
      for(let j=0;j<defaultLength;j++){   //追加默认标题
          thisCols.push( responseData[j]);
      }
      return [thisCols];  //注意结果为:array[0]=thisCols
  }


  //方法级渲染
  table.render({
    elem: '#LAY_table_user'   // 表id
    ,url: 'query/signup/list' 
    , cols: cols_arr
    , parseData: function(res) { //res 即为原始返回的数据
      }
    ,id: 'testReload'
    ,page: true
    ,height: 610
  });

控制器中

	// array(2) {
	//   [0]=>
	//   string(12) "level_1_give"
	//   [1]=>
	//   string(12) "level_2_give"
	// }

我返回的是如上数据,要遍历,动态显示的值
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1. 引入layui库和jQuery库。 ```html <!-- 引入layui库 --> <link rel="stylesheet" href="layui/css/layui.css"> <script src="layui/layui.js"></script> <!-- 引入jQuery库 --> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> ``` 2. 创建一个表格容器。 ```html <div id="table"></div> ``` 3. 初始化表格。 ```javascript layui.use(['table'], function() { var table = layui.table; // 定义列 var cols = [ {field: 'id', title: 'ID', width: 80}, {field: 'name', title: '姓名', width: 120}, {field: 'age', title: '年龄', width: 80}, {field: 'sex', title: '性别', width: 80}, {field: 'address', title: '地址', width: 200} ]; // 初始化表格 table.render({ elem: '#table', // 容器id url: '/data', // 数据接口 cols: [cols], // 列 page: true // 是否开启分页 }); }); ``` 4. 从服务器获取数据。 ```javascript layui.use(['table'], function() { var table = layui.table; var index = layer.load(1); // 加载动画 // 定义列 var cols = [ {field: 'id', title: 'ID', width: 80}, {field: 'name', title: '姓名', width: 120}, {field: 'age', title: '年龄', width: 80}, {field: 'sex', title: '性别', width: 80}, {field: 'address', title: '地址', width: 200} ]; // 获取数据 $.ajax({ url: '/data', type: 'GET', dataType: 'json', success: function(res) { layer.close(index); // 关闭动画 table.render({ elem: '#table', // 容器id data: res.data, // 数据 cols: [cols], // 列 page: true // 是否开启分页 }); } }); }); ``` 5. 实现表格数据动态更新。 ```javascript layui.use(['table'], function() { var table = layui.table; // 定义列 var cols = [ {field: 'id', title: 'ID', width: 80}, {field: 'name', title: '姓名', width: 120}, {field: 'age', title: '年龄', width: 80}, {field: 'sex', title: '性别', width: 80}, {field: 'address', title: '地址', width: 200} ]; // 初始化表格 var tableIns = table.render({ elem: '#table', // 容器id url: '/data', // 数据接口 cols: [cols], // 列 page: true // 是否开启分页 }); // 刷新表格数据 function refreshTable() { table.reload('table', { url: '/data', done: function() { setTimeout(refreshTable, 5000); // 5秒后再次刷新 } }); } // 开始刷新表格数据 setTimeout(refreshTable, 5000); // 5秒后开始刷新 }); ``` 6. 完整的代码。 ```html <!DOCTYPE html> <html> <head> <title>动态表格数据</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 引入layui库 --> <link rel="stylesheet" href="layui/css/layui.css"> <script src="layui/layui.js"></script> <!-- 引入jQuery库 --> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> </head> <body> <div id="table"></div> <script> layui.use(['table'], function() { var table = layui.table; // 定义列 var cols = [ {field: 'id', title: 'ID', width: 80}, {field: 'name', title: '姓名', width: 120}, {field: 'age', title: '年龄', width: 80}, {field: 'sex', title: '性别', width: 80}, {field: 'address', title: '地址', width: 200} ]; // 初始化表格 var tableIns = table.render({ elem: '#table', // 容器id url: '/data', // 数据接口 cols: [cols], // 列 page: true // 是否开启分页 }); // 刷新表格数据 function refreshTable() { table.reload('table', { url: '/data', done: function() { setTimeout(refreshTable, 5000); // 5秒后再次刷新 } }); } // 开始刷新表格数据 setTimeout(refreshTable, 5000); // 5秒后开始刷新 }); </script> </body> </html> ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值