欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

layui动态加载多表头的实例

程序员文章站 2023-10-23 13:07:27
效果 动态生成header 返回的header数据:格式为数组,因为是二级表头,所以是二元数组 后台动态拼接数组,返回数组后把两个数组push到一个空数组...

效果

layui动态加载多表头的实例

layui动态加载多表头的实例

动态生成header

layui动态加载多表头的实例

返回的header数据:格式为数组,因为是二级表头,所以是二元数组

后台动态拼接数组,返回数组后把两个数组push到一个空数组中就可以组成一个动态的多级表头

var header= [];
var header1= [{field: 'merchantname', title: '商户名称', width: 140, rowspan: 2},{field: 'merchantsubname', title: '子商户名称', width: 140, rowspan: 2}];
var header2= [];
$.ajax({
  type: "get",
  url: "",
  data: {id: 1,type:type},
  success: function (data) {
   if (data.code === 0){
    $.each(data.data[0], function (index, obj) {
     header1.push({align: 'center', title: obj, colspan:3});
    });
    $.each(data.data[1], function (index, obj) {
     //拼接成官网所需要的数组
     header2.push({field: obj.field1, title: obj.title1 });
     header2.push({field: obj.field2, title: obj.title2 });
     header2.push({field: obj.field3, title: obj.title3 });
    });
    header.push(header1);
    header.push(header2);
    table.reload('setlist', {
     url: '' //数据接口
     , cols: header
    });
    header= [];
    header1= [{field: 'merchantname', title: '商户名称', width: 140, rowspan: 2},{field: 'merchantsubname', title: '子商户名称', width: 140, rowspan: 2}];
    header2= [];
   }
  }
 });
 table.render({
  id: 'setlist',
  elem: '#setlist'
  , url: '' //数据接口
  , cellminwidth: 80
  , limit: 10//每页默认数
  , limits: [10, 20, 30, 40, 50, 100]
  , page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
   layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip'] //自定义分页布局
   , curr: 1 //设定初始在第 1 页
  }
  ,where: {
   id:id,
   type:type
  }
  , cols: header
 });

后台动态生成多级表头

public ajaxresult header(@requestparam map<string, object> map) {
  long id = long.valueof((string )map.get("id"));
  string productname = map.get("productname")==null?"":(string)map.get("productname");
  string type = map.get("type")==null?"":(string)map.get("type");

  if("".equals(productname) ){
   if(("0").equals(type)){
    list<productinfo> list =statisticsfeign.getproduct();
    productname = list.get(0).getproductname();
   }else{
    long[] ids =settlementfeign.getmerch(id);
    string mid= org.apache.commons.lang.stringutils.join(ids, ",");
    list<merchantproductrate> list =statisticsfeign.getproductbymid(mid);
    productname = list.get(0).getproductname();
   }
  }

  string[] str = productname.split(",");
  list list = new arraylist();
  list list1 = new arraylist();
  list list2 = new arraylist();
  for (int i = 0; i < str.length; i++) {
   list1.add(str[i]);
   list2.add(new messge("sumtotal"+(i+1),"成功笔数","sumcost"+(i+1),"扣减金额","sumbars"+(i+1),"扣减条数"));
  }
  list.add(list1);
  list.add(list2);
  return new ajaxresult(0,"获取数据成功",list);
 }

表格数据是通过统计得出的数据,统计的数据也是通过循环拼接sql,统计命名要和表头的一致

public class messge {
 /** 列名1 **/
 private string field1;
 /** 对应说明1(成功笔数) **/
 private string title1;
 /** 列名2 **/
 private string field2;
 /** 对应说明2(扣减金额) **/
 private string title2;
 /** 列名3 **/
 private string field3;
 /** 对应说明3(扣减条数)**/
 private string title3;

代码写的丑了点,还是整出来了。

以上这篇layui动态加载多表头的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。