layui table表格使用table.resize()方法 重置表格尺寸
阅读原文时间:2023年07月08日阅读:1

解决 使用layui中的table表格重置表格尺寸 问题

表格的高度共有两种写法 相对应的就有两种解决方法

第一种

当表格高度设置为固定高度时,改变表格高度使用

tableIns=table.render({
elem: '#box'
, url: 'index.php'
, cellMinWidth: 80 //最小宽度
, height: '500px'
, page: true //开启分页
, limit: 30 //页数
, limits: [30, 60, 90] //每页数
, method: 'post' //类型
, defaultToolbar: ['filter']
, toolbar: '#toolbarDemo'
});

使用官方API给的方法会报错,通过查看layui框架源代码,进行调试,解决了改变固定高度问题。

//设置表格的高度
tableIns.config.height=600;
tableIns.resize()

第二种

当表格高度设置为full-差值时,改变表格高度使用

高度将始终铺满,无论浏览器尺寸如何。这是一个特定的语法格式,其中 full 是固定的,而 差值 则是一个数值,这需要你来预估,比如:表格容器距离浏览器顶部和底部的距离“和”

tableIns=table.render({
elem: '#box'
, url: 'index.php'
, cellMinWidth: 80 //最小宽度
, height: 'full-120'
, page: true //开启分页
, limit: 30 //页数
, limits: [30, 60, 90] //每页数
, method: 'post' //类型
, defaultToolbar: ['filter']
, toolbar: '#toolbarDemo'
});

当使用full-差值的时候,我在本页面如何写都没办法解决,我从GitHub上下载了一份源码,我直接在源码调试,看看是哪里出现了问题

查看源码发现

在table.js文件中,刚开始定义table的使用,定义thisTable方法

这里面返回resize始终都为空,但是该脚本所有的resize都走该方法返回,通过调试,发现thisTable返回的resize中的that里面不存在fullHeightGap的值,所以每次调用的时候都会报错误。

通过调试需要在返回值中把that返回回去,才可以使用fullHeightGap的值。

在自己的页面脚本调用改变fullHeightGap的值就可以改变高度了

tableIns.getthat().fullHeightGap='350';
tableIns.resize()

这样就解决full-差值的问题了,但是解决这个问题需要去修改原本的代码,暂时还没找到能不修改代码就能解决的方法。

推荐大家使用第一种方式,自己写js脚本去计算高度,这样就可以实现即不改源代码也可以实现full-差值。