elementui table 不显示表头_.NET和layui实现复杂表头动态展示及导出

  由于需求复杂表头的展示及导出功能,经查阅资料后总结如下:

  需求:前端部分需要最新版本的layui相关的引用,后端部分需要AndyGridViewTHeaderHepler工具类(封装好的一些常用的excel的工具方法,https://www.cnblogs.com/howDo/archive/2010/06/06/StaticGridViewHeader.html可找到);

  效果图如下:

b91913c4946112fe9bc945712eaf4560.png

  实现步骤:

  1,先引用layui并设置复杂表头及开启隐藏列工具,具体代码如下

7fc3fa85e63750582801dd514014c7b0.png

  defaultToolbar: ['filter']为开启隐藏列工具,rowspan= "2"是设置表头占用2行,colspan="2"是设置表头占用2列。具体表头展示需要依照设计稿来组装。

  2、后端需要一个DataTable类型的数据源,如果需要计算小计的话可以按照如下代码

510adf6f560ea5cd1368db493eebeb04.png

  这样的话基本上数据源就可以成功绑定,页面也就可以显示出来了,这里要注意字段名的大小写。

  3、导出功能比较复杂,是需要对表头进行分组及设计位置,前端部分需要使用layui的table.eachCols()方法遍历表头,通过判断表头的hide属性来确定是否被隐藏,隐藏是true,显示则是false,然后拼装没有被隐藏的列字段发送给后端,具体如下

1327cf470e051fe34c721388bbb4e76a.png

  后端部分,接收前端拼装好的字段名字符串,拆分成数组,遍历这个数组。注意这里的字段名首字母是小写,需要写个方法来变成首字母大写,这样才能匹配上数据。(layui渲染表格的时候会把两个连着的大写字母变成小写字母,所以在字段命名的时候尽量避免。)然后通过AndyGridViewTHeaderHepler工具类里面的方法定义列,表头。注意columns.Add(new AsposeHelper.JqxTableColumns() { text = header, columngroup = "shouru" });这句的意思是表头的名字是header这个变量的值,父级表头是shouru。然后是定义父级表头List group = new List();然后给父级表头赋值group.Add(new AsposeHelper.JqxTableColumnsGroup() { name = "shouru

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值