layui中的table —— 加合计功能后高度那些事

(一)表格需高度固定且合计行紧跟上一数据行

表格设置了固定高度且开启了合计功能后,如果表格的数据只有两条,那么合计行与上一数据行之间可能会有很大的间距,这时表格如果有自定义样式可能会很丑,如下图:
在这里插入图片描述
下面是我采用的解决办法:

1、首先要有一个有高度的容器

<style>
	.container{
		height:90%;
	}
</style>
<div class="container"> 
	<table class="layui-hide" id="test" lay-filter="test"</table>
	<div id="test_page" lay-filter="test_page"></div>
</div>

2、初次渲染表格时不要开启合计功能,高度也不要设置,数据请求回来表格重载后再开启合计功能,然后再判断是否需要给表格设置高度

<script>
    layui.use(['table', 'laypage', 'layer'], function () {
        var layer = layui.layer,
        table = layui.table,
        laypage = layui.laypage;
        //初始化表格(不设置高度)
	    table.render({
	        elem: $("#test"),
	        id: "test",
	        data: [],
	        cols: [[
		        { type: 'numbers', title: '序号', width: 80, align: "center", fixed:"left", totalRowText: '合计'},  
		        { field: 'spmc', width: 100, title: '商品名称', align: "center" },
		        { field: 'dj', width: 100, title: '单价', align: "center" }
		    ]],
	        done:function(){
	            getData(1, 10);
	        }
    	});
    	//向后台请求数据
    	function getData(pnum, pcount) {
    		$.ajax({
		        type: "GET",
		        url: "url?pnum=" + pnum + "&pcount=" + pcount,
		        cache: false,
		        success: function (res) {
		            if (res.success) {
                		table.reload("test", {
		                    data: res.datalist,
		                    limit: res.datalist.length,
		                    totalRow: true,
		                    done:function(res,curr,count){}
		                })
	                	//如果表格的高度大于你想设的固定高度值(容器的高度减去分页组件的高度)时重新渲染表格,只需设置高度
	                	if($("div[layid=test]").height()>$(".container").height()-60){
		                    table.reload("test", {
		                        height:$(".container").height()-60
		                    })
		                }
		                //分页  
		                laypage.render({
		                    elem: $("#test_page"),
		                    count: res.total,
		                    layout: ['prev', 'page', 'next', 'count', 'limit'],
		                    curr: pnum,
		                    limit: pcount,
		                    jump: function (obj, first) {
		                        //首次不执行
		                        if (!first) {
		                            getData(obj.curr, obj.limit);
		                        }
		                    }
		                });
               		}
               	}
		    });
    	}          	  
	});
</script>

最后结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值